Mailinglisten-Archive |
andreas amalesh kempf wrote: > So wie ich das hier verstanden habe, soll daraus > aber automatisch sowas werden: > select inhalt from menu > where inhalt like '%Gebratenes%' > and inhalt like '%Seezungenfilet%' > > Das findet dann auch "Gebratenes Schweinefleisch". Nein, das würde nur mit "OR" der Fall. Und # Zerlegen $words = "Gebratenes Schweinefleisch"; $w = explode(" ", $words); # Where clause bauen $where = ""; reset($w); while (list($k, $v) = each($w)) { $where .= sprintf(" inhalt like '%%%s%%' or ", $v); } # Neutrales Element in einem OR ist "false". # Der Optimizer filtert das dann schon weg... $where .= " 0=1"; # Neutrales Element in einem AND ist "true". # $where .= " 1=1"; # Query basteln. $query = sprintf("select inhalt from menu where %s", $where); Achja, und tschuldigung wenn ich es erwähne, aber PHPLIB hat da so eine SQL_Query-Klasse (http://phplib.shonline.de/showroom/sqlquery.php3, zweimal auf "more" klicken und dann nach Session Name contains User and Change Date < 19990701000000 and Session ID contains nobody klicken). Den generierten $where-String kann man dann in der Query-Condition-Ausgabe sehen. Den Quelltext der Seite (verwendet SQL_Query und Table-Klassen) kann man mit dem View Source-Knopf bekommen. SQL_Query kann keine Klammern, aber die meisten User können das auch nicht. Kristian -- Kristian Köhntopp, NetUSE Kommunikationstechnologie GmbH Siemenswall, D-24107 Kiel, Germany, +49 431 386 436 00 Using PHP3? See our web development library at http://phplib.shonline.de/ (GPL)
php::bar PHP Wiki - Listenarchive