PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : mysql SELECT Syntax



RambozoTheClown
07-02-2002, 13:53
Hallo zusammen,

ich habe folgendes Problem

Dieser Befehl funktionier wunderbar:
SELECT * FROM artikel WHERE bezeichnung LIKE '%$suchwort%' OR beschreibung LIKE '%$suchwort%'

Dieser Befehl hingegen nicht:
SELECT * FROM artikel WHERE bezeichnung LIKE '%$suchwort%' OR beschreibung LIKE '%$suchwort%' OR kategorie LIKE '%suchwort%'

Gibt es es eine alternative Form, so dass ich noch mehr Bedingungen hinzufügen kann?

Ich wäre für jede Hilfe sehr dankbar...Ulf

jwebworks
07-02-2002, 14:00
Original geschrieben von RambozoTheClown
H
SELECT * FROM artikel WHERE bezeichnung LIKE '%$suchwort%' OR beschreibung LIKE '%$suchwort%'

SELECT * FROM artikel WHERE bezeichnung LIKE '%$suchwort%' OR beschreibung LIKE '%$suchwort%' OR kategorie LIKE '%suchwort%'

Ich wäre für jede Hilfe sehr dankbar...Ulf
kann es sein, dass du beim dritten suchwort das dollarzeichen
vergessen hast?

cu, stoph.

RambozoTheClown
07-02-2002, 14:08
Ich hab beim abtippen einen Fehler gemacht. Es heißt eh nur $suchwort, weil der Befehl aus einem PHP-Skript stammt. Es schein aber ein generelles Problem mit einem zweiten 'OR' zu geben...

Sellew
07-02-2002, 14:33
generelles problem mit OR?? iss mir noch nicht aufgefallen.

versuch mal:

SELECT * FROM artikel WHERE (bezeichnung LIKE '%$suchwort%') OR (beschreibung LIKE '%$suchwort%') OR (kategorie LIKE '%$suchwort%')

vielleicht gehts. ich muss sagen das ich auch schon 4 OR's hatte und es ging.

mfg

Pingu
07-02-2002, 15:12
Hi Rambozo,

also bis auf das vergessene Dollarzeichen seh auch ich kein Problem. Auch gibt es kein Problem mit der Anzahl der Ausdrücke. Ich persönlich mag es aber lieber geklammert, weil ich dann besser beeinflussen kann was er machen soll (beim Taschenrechner genauso).
Vielleicht steht aber in der Variablen was komisches drin, denn ich würde an Deiner Stelle nicht so einfache dies Variable einsetzen, sondern ersteinmal 'verbotene' Zeichen herausfiltern, z.B. mit addslashes().
Wenn es dann immer noch unerklärliche Probleme gibt, hilft mir manchmal die Abfrage im mysqlclient per Hand einzugeben und die Fehlermeldung auszuwerten. mySQL sagt immer die Stelle wo ein Fehler aufgetreten ist, d.h. ab genau dem Zeichen danach wird der Rest der Abfrage als Fehlermeldung zurück gegeben.

Gruß

-= Pingu =-

RambozoTheClown
07-02-2002, 15:17
Hey, danke für eure zhalreichen Antworten. Werde eure Vorschläge mal ausprobieren...

RambozoTheClown
07-02-2002, 15:33
Funktionier jetzt. Glaube es hat daran gelegen, dass der letzte Vergleich einer von einem INT- mit CHAR-Datentyp war. Kann das sein? Hab den Ausdruck jedenfalls sicherheitshalber auch gleich eingeklammert.