phpbar.de logo

Mailinglisten-Archive

[php] mehrere Suchbegriffe uebergeben?

[php] mehrere Suchbegriffe uebergeben?

Kristian =?iso-8859-1?Q?K=F6hntopp?= kk_(at)_netuse.de
Thu, 03 Jun 1999 14:38:37 +0200


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