Thomas Luethi: gePOSTeten Variablenwert in MySQL Select Abfrage übernehmen

Beitrag lesen

Hallo,

$ergebnis = mysql_query ('select  spiele.SplNr, Titel, Beschreibung, Kategorie from spiele, kategorien where spiele.SplNr=kategorien.SplNr and Kategorie =$_POST[kategorie]');

Setze die Query in einer eigenen Variable zusammen, bevor Du sie
in mysql_query() verwendest, und lass sie Dir mal anzeigen.
Lass Dir auch die MySQL-Fehlermeldung anzeigen.

$sql='select  spiele.SplNr, Titel, Beschreibung, Kategorie from spiele, kategorien where spiele.SplNr=kategorien.SplNr and Kategorie =$_POST[kategorie]';

echo "Die Query lautet: $sql";

$ergebnis = mysql_query ($sql);

if (!$ergebnis)
  { echo "DB-Fehler: ".mysql_error(); }

Auf den ersten Blick sehe ich zwei moegliche Fehlerquellen:
1. Zwischen einfachen Anfuehrungzeichen werden keine Variablen ersetzt (PHP).
2. String-Werte muessen in einfachen Anfuehrungszeichen stehen (MySQL).

http://www.php.net/manual/de/language.types.string.php bzw.
http://www.php.net/manual/en/language.types.string.php (mehr Beispiele)

Versuch mal folgendes:

$sql="select  spiele.SplNr, Titel, Beschreibung, Kategorie from spiele, kategorien where spiele.SplNr=kategorien.SplNr and Kategorie ='$_POST[kategorie]'";

Alternative Schreibweisen:

$sql="select  spiele.SplNr, Titel, Beschreibung, Kategorie from spiele, kategorien where spiele.SplNr=kategorien.SplNr and Kategorie ='{$_POST['kategorie']}'";

$sql='select  spiele.SplNr, Titel, Beschreibung, Kategorie from spiele, kategorien where spiele.SplNr=kategorien.SplNr and Kategorie =''.$_POST['kategorie'].'';

u.s.w.

Gruesse,

Thomas

--
Bitte keine Mails mit Fachfragen - dafuer gibt es das Forum!
Ich mag es, wenn URLs verlinkt sind (</faq/#Q-19>).
Oft gestellte PHP-Fragen beantwortet die dclp-FAQ bestens: http://www.dclp-faq.de/