Hallo zusammen
Ich habe eine Tabelle die etwa so ausschaut:
![](http://idisk.me.com/fabiopigi/Public/Pictures/Skitch/tabelle-20111107-135020.jpg)
SID, PID sind eineindeutig, Vor- und Nachname natürlich nicht, geschlecht ist 1=männlich, 2=weiblich
Das Skript bekommt einen String (und Key) und gibt eine JSON Antwort zurück welche PID, Vor- und Nachname enthält.
Der String kann allerdings etwas komplexer sein, zB so:
"Fab,Math,Andre" oder "männlich", "Ma Must, Han Müll", "Mustermann" oder "123" (suche via PID).
Das Script funktioniert bis jetzt teilweise, und zwar wird einfach das "oder" genommen, aber nicht das "und", also "Fab oder Math oder Andre" geht, aber nicht "Ma und Must".
Wenn ich das jetzt noch erweitern würde gäbe das schnell einen recht langen Query.
Gibt es ein Framework oder so was, womit ich einfacher solche Suchquerys machen kann?
Ich habe eine Tabelle die etwa so ausschaut:
![](http://idisk.me.com/fabiopigi/Public/Pictures/Skitch/tabelle-20111107-135020.jpg)
SID, PID sind eineindeutig, Vor- und Nachname natürlich nicht, geschlecht ist 1=männlich, 2=weiblich
Das Skript bekommt einen String (und Key) und gibt eine JSON Antwort zurück welche PID, Vor- und Nachname enthält.
Der String kann allerdings etwas komplexer sein, zB so:
"Fab,Math,Andre" oder "männlich", "Ma Must, Han Müll", "Mustermann" oder "123" (suche via PID).
Das Script funktioniert bis jetzt teilweise, und zwar wird einfach das "oder" genommen, aber nicht das "und", also "Fab oder Math oder Andre" geht, aber nicht "Ma und Must".
Code:
$filter = mysql_real_escape_string($_GET['filter']); //$filter = "fab pi, seb bo, tun"; //$filter = "pigagn,bock,tunay"; $abfragesegment = "(vor LIKE '%XXX%' OR nach LIKE '%XXX%' OR pid LIKE '%XXX%')"; $t1 = explode(",",$filter); while(list($key,$value)=each($t1)){ $value = trim($value); if($value=="männer"){ $t2[] = "(geschlecht=1)"; }elseif($value=="frauen"){ $t2[] = "(geschlecht=2)"; }elseif(strlen($value)>=3){ $t2[] = str_replace("XXX",$value,$abfragesegment); } } //print_r($t2); $wherequery = "(".implode(" OR ",$t2).")"; $query = "SELECT sid,pid,vor,nach,geschlecht FROM students WHERE pid!=0 AND ( ".$wherequery." ) LIMIT 0,300"; $res = mysql_query($query)OR DIE(mysql_error()); while($row=mysql_fetch_array($res)){ $resultate[]=array($row['pid'],$row['sid'], $row['vor']." ".$row['nach']); } echo json_encode($resultate);
Gibt es ein Framework oder so was, womit ich einfacher solche Suchquerys machen kann?
Kommentar