thebrain
25-03-2002, 13:42
$dbQuery = "SELECT * FROM tabelle WHERE wert1 LIKE '%wort%%'
or wert2 LIKE '%$wort%'";
---------------------
das ist meine suchabfrgae, wenn ich bei dem script jetzt nach einem wort suchen lasse ist alles ok, wenn das suchwort jedoch aus 2 oder mehr wörter besteht wird nichts mehr gefunden...
Kann mir einer sagen wie ich das änderen kann?
naja dann musst du weitere LIKESs einbauen, ist doch logisch, mach dir mal gedanken wie das in den Query eingebaut wird :
$wort = "JoelH"
ergibt :
$dbQuery = "SELECT * FROM tabelle WHERE wert1 LIKE '%JoelH%'
findet alles was ein JoelH beinhaltet.
aber $wort = "JoelH Herbert Karl"
ergibt :
$dbQuery = "SELECT * FROM tabelle WHERE wert1 LIKE '%JoelH Herbert Karl%'
aber du suchst ja
$dbQuery = "SELECT * FROM tabelle WHERE wert1 LIKE '%JoelH%' or wert1 LIKE '%Herbert%' or wert1 LIKE '%Karl%'
das ist schon ein unterschied, das musst du mittels einer Schleife lösen die den String $dbQuery dynamisch zusammenbaut.
thebrain
25-03-2002, 14:08
danke für die antwort, schlauer bin ich aber auch nicht...
Troublegum
25-03-2002, 14:34
$query="Hallo Thebrain und JoelH";
$query_elements = explode(" ",addslashes($query));
for($i=0;$i<count($query_elements);$i++) {
if($sql) {
$sql .= " OR"; /// oder AND (wie du willst)
}
$sql .= " spalte LIKE '%$query_elements[$i]%'";
}
$sql = "SELECT * FROM table WHERE".$sql;
ergibt
SELECT * FROM table WHERE spalte LIKE '%Hallo%' OR spalte LIKE '%thebrain%' OR spalte LIKE '%und%' OR spalte LIKE '%JoelH%'
thebrain
26-03-2002, 15:36
hört sich logsich an, aber ürgentwas mach ich falsch oder ist falsch, ich krig es einfach nicht hin, gibt nichts aus....