Mailinglisten-Archive |
Am Mit, 14 Feb 2001 schrieben Sie:
> Hi Leute!
>
> Ich baue eine Suchfunktion, bei der mehrere Spalten einer MySQL-Tabelle
> durchsucht werden sollen. Zusätzlich müssen zwei Kriterien immer zutreffen:
>
> Meine Abfrage lautet:
>
> $result_produkte=mysql_query("Select * From Produkte where
> FK_Sprache='$FK_Sprache' and Status='1' or Status='2' and Name like
> '%$suchfeld%' or Bezeichnung like '%$suchfeld%' or Text like '%$suchfeld%'
> or Stichwoerter like '%$suchfeld%' order by Name");
>
> Ich wähle damit also alle Produkte, bei denen Sprache zb. 1 ist, deren
> Status entweder 1 oder 2 ist und bei denen in einem der weiteren Felder der
> Inhalt der Variable $suchfeld vorkommt.
>
> Leider liefert er mir immer alle Datensätze aus. Habe ich da vielleicht
> irgendeinen Denkfehler drin?
Vielleicht ein paar klammern vergessen ?
soweit ich weiss wird AND vor OR ausgewertet. er macht also alle die
Sprache = z.B. 1 und Status =1 ODER
Status = 2 and NAme like .....
Ich glaube du meinstest:
$result_produkte=mysql_query("Select * From Produkte where
FK_Sprache='$FK_Sprache' and ( Status='1' or Status='2' ) and ( Name like
'%$suchfeld%' or Bezeichnung like '%$suchfeld%' or Text like '%$suchfeld%'
or Stichwoerter like '%$suchfeld%' ) order by Name");
gruss,
Michael
--
KDE - fan, enthusiast and developer
koch_(at)_kde.org, http://www.kde.org
php::bar PHP Wiki - Listenarchive