Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
such abfrage [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
such abfrage


 
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?

 
JoelH
25-03-2002, 14:00 
 
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....


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:01 Uhr.