AlexBausW: gePOSTeten Variablenwert in MySQL Select Abfrage übernehmen

Beitrag lesen

Hallo Lammy,

[...}

<?php
$res=$_POST[kategorie];

Zeichenketten schreibt man, auch wenn sie als Index eines assoziativen Arrays dienen, immer in Anführungsstrichen.

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

Schreib mal Dein Statement in eine Variable und gib diese aus. Dann siehst Du, warum ein Datenbankanfrage damit keinen gültigen Wert zurückliefern kann:

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

Wie Zeichenketten und Variableninterpolation funktionieren, kannst Du unter http://www.php.net/manual/de/language.types.string.php nachschlagen. Und in einem SQL-Statement müssen Zeichenketten immer gequotet werden (wimre).

Nebenbei bemerkt sollte man Usereingaben nicht ungeprüft, bzw. unbearbeitet weiterverwenden (besonders in einem SQL-Statement nicht). Denn sonst kann Dir jemand durch Eingabe von "' or 1 = 1" die komplette Tabelle auslesen. Das ist hier noch nicht schlimm. Wenn die Tabelle aber Kundendaten enthält ist dies äußerst kritisch.

$anzahl=mysql_num_rows($ergebnis);

[...]

while ($zaehler<=$anzahl && $datenArray = mysql_fetch_array($ergebnis)) {

Die Überprüfung des Zählers ist unnötig, da die Zuweisung rechts vom && false ist, sobald kein Datensatz mehr "gelesen" werden kann.

$Titel=$datenArray['Titel'];
$Beschreibung=$datenArray['Beschreibung'];

Auch die Zuweisung zu gesonderten Variablen kannst Du Dir imho sparen, wenn Du den obigen Link verfolgt, und die vorgefundene Seite gelesen hast. :))

[...]

Gruß Alex

--
>> Dass in eine if Schleife zu packen schafft mein 10 jähriges Patenkind. [...]
> Mhhh, wenn man if in Schleifen packt, muss man sich auch nicht wundern, wenn die Patenkinder verwöhnte Luder werden. [...]
[TomIRL und Tom in ?t=64084&m=364291]
ss:) zu:} ls:} fo:| de:[ va:| ch:| sh:( n4:& rl:° br:& js:| ie:| fl:| mo:}