mysql_query, 2 where atribute

Kategorien: PHP & MySQL
7 Antworten
Eichhornleib
Eichhornleib am Samstag, 23. Juli 2005 um 14:41
$res = mysql_query("select * from artike" where id=".$_GET["id"]." AND cache='0' ORDER BY created DESC"); wie kann ich das machen das der nur einträge zeigt mit id=id und cache=0. Mit komma und ANd gehts nicht

Kommentare

azz
azz am Samstag, 23. Juli 2005 um 16:21

ich habs mit && gemacht, wobei das ja eigentlich das selbe wie AND is, aber bei mir gings


$id = $_GET["id"];

$res = mysql_query("select * from artikel where id=$id && cache='0' ORDER BY created DESC");


probiers einfach ma so

du hattest au so no fehler drin, artike" denke ich heisst artikel
und du brauchst keine ".xxxx." um var's in php einzubinden, [b]".[/b] brauchste nur wennde var's in html einbinden willst.

mfg, azz

Markus René Einicher
Markus René Einicher am Sonntag, 24. Juli 2005 um 20:09

Die Verbindungsoperatoren sind schon richtig, gehören da auch hin, sie wegzulassen ist zwar möglich aber eigentlich "unreiner" Quelltext. Ich verwende auch immer das ausgeschriebene, also AND und nicht && und es geht immer, daher würd ich jetzt mal darauf tippn das der von azz erwähnte "artike" der einzige Fehler ist.

Und azz: bei id=$id stellen sich machne PHP/SQL-Varianten quer, daher wird einem in dieser Hinsicht oft zu id='$id' (einfachen Anführungszeichen) geraten, was du bei cache='0' merkwürdigerweise auch einhältst.

blackfeet
blackfeet am Sonntag, 24. Juli 2005 um 22:16

Soweit ich weiß muss man in mysql oder generell sql bei Ganzzahlen (Integer) keine Anführungsstriche machen, bei allen anderen aber schon.
azz hat es folglich genau umgekehrt gemacht.

Eichhornleib
Eichhornleib am Montag, 25. Juli 2005 um 02:54

Es war das $_GET["id"] das mochte die Abfrage nicht, hab es in ID geändert und es hat funktioniert. Das mit dem artike war so gewollt, hab noch nicht die tabelle umgenannt, heißt wirklich (noch) so. Hab mich beim erstellen vertippt.

cruz
cruz am Montag, 25. Juli 2005 um 16:56

zahlenwerte brauchen keine abführungszeichen .. variablen aber schon, bin mir nich so ganz sicher, manchmal glaubt man nen integer zu haben, dann isses aba von php aus n string :/

zahlenwerte ohne striche oder mit (mit könnte als string verstandn werdn glaub ich?!)

variablen und strings in anführungszeichen, wobei ich dann variablen komplett rausschreibn würd .. also z.B.:

mysql_query("select * from artikel where id='".$_GET['id']."');

blackfeet
blackfeet am Montag, 25. Juli 2005 um 21:00

Original von r0ck5tar:
variablen und strings in anführungszeichen, wobei ich dann variablen komplett rausschreibn würd .. also z.B.:

mysql_query("select * from artikel where id='".$_GET['id']."');

Mh, ich würds nicht so machen, bei der id würd ich keine striche machen.
Auch wenn $_GET['id'] für php ein String ist, wird das ganze bevor es an die Datenbank geschickt wird sowieso in einen String gepackt.
Das Datenbanksystem bekommt nur den kompleten String zu sehen (also die ganze abfrage). Ob die id in php ein String war oder nicht ist dem egal.

azz
azz am Dienstag, 26. Juli 2005 um 14:50

also so wie ichs oben geschrieben habe mit id=$id mache ichs auch immer und bei mir funzts, aber merci für den tipp

mfg, azz : )