Seite 1 von 1

Where befehl

Verfasst: 18.10.2008 12:31
von goodpeace
Hallo ,

Ich habe folgendes problem .

Code: Alles auswählen

sql="select * from test WHERE Typ = 1";
Wie kann ich jetzt noch mehrere WHERE befehle für diese Spalte abfragen ?

So ?

Code: Alles auswählen

sql="select * from test WHERE Typ = 1, 2, 3";
Oder wie genau geht das ?

danke im Voraus

Verfasst: 18.10.2008 12:36
von Miriam
Probier'

Code: Alles auswählen

sql="select * from test WHERE Typ IN (1, 2, 3)";
//Edit: Hochkommata vor und nach dem Spaltennamen gelöscht.

Verfasst: 18.10.2008 12:44
von goodpeace
Miriam hat geschrieben:Probier'

Code: Alles auswählen

sql="select * from test WHERE 'Typ' IN (1, 2, 3)";
Gibt folgenden Fehler-Code
DEBUG MODE

SQL Error : 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE 'Typ' IN (1, 2, 3)' at line 1

SELECT word, replacement FROM orion_adminbanners ORDER BY RAND() LIMIT 1 WHERE 'Typ' IN (1, 2, 3)

Verfasst: 18.10.2008 14:33
von Miriam
Also das hier

Code: Alles auswählen

sql="select * from test WHERE Typ IN (1, 2, 3)";
ergibt diesen Fehlercode nicht, sondern das hier

Code: Alles auswählen

SELECT word, replacement FROM orion_adminbanners ORDER BY RAND() LIMIT 1 WHERE Typ IN (1, 2, 3)
Dazu folgende Lektüre.

//Edit: Hochkommata vor und nach dem Spaltennamen gelöscht.

Verfasst: 18.10.2008 16:31
von goodpeace
Hab jetzt gelöst

und zwar so :

Code: Alles auswählen

SELECT word, replacement FROM " . ADMINBANNERS_TABLE . " WHERE NOT Typ = 0 ORDER BY RAND() LIMIT 1
danke aber trotzdem so nimmt er nur die banners die aktiv sind (0=Inaktiv)

Danke =)

Verfasst: 19.10.2008 09:59
von djchrisnet
goodpeace hat geschrieben:Hab jetzt gelöst

und zwar so :

Code: Alles auswählen

SELECT word, replacement FROM " . ADMINBANNERS_TABLE . " WHERE NOT Typ = 0 ORDER BY RAND() LIMIT 1
danke aber trotzdem so nimmt er nur die banners die aktiv sind (0=Inaktiv)

Danke =)
noch besser:

Code: Alles auswählen

SELECT word, replacement FROM " . ADMINBANNERS_TABLE . " WHERE Typ <> 0 ORDER BY RAND() LIMIT 1
Zur vorherigen Lösung:

Code: Alles auswählen

SELECT word, replacement FROM " . ADMINBANNERS_TABLE . " WHERE Typ = 1 OR Typ = 2 OR Typ = 3 ORDER BY RAND() LIMIT 1
funktioniert auch

Verfasst: 19.10.2008 15:54
von PhilippK
Miriam hat geschrieben:Also das hier

Code: Alles auswählen

sql="select * from test WHERE 'Typ' IN (1, 2, 3)";
ergibt diesen Fehlercode nicht, sondern das hier

Code: Alles auswählen

SELECT word, replacement FROM orion_adminbanners ORDER BY RAND() LIMIT 1 WHERE 'Typ' IN (1, 2, 3)
Dazu folgende Lektüre.
Dein Code würde auch einen Fehler produzieren, da der Feldname nicht in Anführungszeichen gehört.

Gruß, Philipp

Verfasst: 19.10.2008 17:50
von Miriam
Da hast Du recht..... zumindest nicht in diesen single Quotes ('), sondern in diesen (`).
Oder eben garkeine.... mein Fehler.

Hab's oben geändert.