Logische Verknüpfungen (SQL)
Wolfgang
- php
0 André Laugks0 Falk
Hallo!
Biete eine Suchfunktion auf meiner Website an (z. B. nach Schlagwörtern im Bereich "Links"). Zurzeit kann man aber nur einen Suchbegriff eingeben (... where <spaltenname> like $SUCHENACH...). Schöner wäre es natürlich, wenn eine logische Verknüpfung mehrer Suchbegriffe möglich wäre (AND, OR bzw. +, |). Bevor ich stundenlang bastle: Kennt ihr ein Skript, das den übergebenen String per EXPLODE zerlegt und ein entsprechendes SQL-Statement zusammenbastelt? Wäre super! Danke schon mal!
Wolfgang
Hallo!
Biete eine Suchfunktion auf meiner Website an (z. B. nach Schlagwörtern im Bereich "Links"). Zurzeit kann man aber nur einen Suchbegriff eingeben (... where <spaltenname> like $SUCHENACH...). Schöner wäre es natürlich, wenn eine logische Verknüpfung mehrer Suchbegriffe möglich wäre (AND, OR bzw. +, |).
http://px.sklar.com/code-pretty.html?code_id=216
bzw: http://www.php.comzept.de/index.php4?TEMPLATE=listing&chapter=8&book=1&script=genwhere
MfG, André Laugks
Hallo,
$sb=trim(strtolower($sb)); //Formulardaten
if($cb==''){ //log Verknüpfung
$cb=" OR ";
}
else{
$cb=" AND ";
}
$worte=array_unique(explode(" ",$sb)); //Leerzeichen raus
if(in_array("",$worte)){
$nichts=array_search("",$worte);
unset($worte[$nichts]);
sort($worte);
}
function where($a){ //where Bed. definieren
global $worte;
for($n=0;$n<count($worte);$n++){
if($sql_out){
$sql_out.=$a;
}
$sql_out.= "tab_schlagworte.Schlagwort LIKE '%".$worte[$n]."%'";
}
return $sql_out;
}
Aufruf:
"SELECT * FROM tab WHERE ".where(param)."";
Falk