Werteübergabe aus Drop-Downmenü

Seven Secrets

Erfahrenes Mitglied
Hallo!

Ich habe folgende Menüs aus einer datenbank erzeugt:

PHP:
$result = mysql_query("SELECT DISTINCT rooms FROM care ORDER BY rooms DESC") or die("Select-Fehler: ".mysql_error());

echo ('<form method="post" action="liste.php">');
echo ('<select name="rooms" size="1">');
while($row = mysql_fetch_array($result)) // schleife solange ausführen bis resultset keine zeilen mehr hat
{
  echo ('<option value="');
  echo($row['rooms']);
  echo ('">');
  echo($row['rooms']);
  echo ('</option>');
}
echo ('</select> ');

$result = mysql_query("SELECT DISTINCT pflstufe FROM care ORDER BY pflstufe ASC") or die("Select-Fehler: ".mysql_error());

echo ('<select name="pflstufe" size="1">');
while($row = mysql_fetch_array($result)) // schleife solange ausführen bis resultset keine zeilen mehr hat
{
  echo ('<option value="');
  echo($row['pflstufe']);
  echo ('">');
  echo($row['pflstufe']);
  echo ('</option>');
}
echo ('</select>');

echo ('<input type="submit" name="submit" value="berechnen">');
};

Nun möchte ich das die ausgewählten Werte beim Postaufruf in die gleiche Datei übernommen werden und dann ein paar Werte aus der Datenbank wiedergeben.

PHP:
Function berechnen ($rooms, $pflstufe){
$result = mysql_query("SELECT rooms FROM care WHERE rooms = '".$rooms."' AND pflstufe = '".$pflstufe."';") or die("Select-Fehler: ".mysql_error());

while($row = mysql_fetch_array($result)) // schleife solange ausführen bis resultset keine zeilen mehr hat
{
echo($row['pflstufe']);
}

Über die Case-Schleife soll es gesteuert werden:

PHP:
/* steuerung der berechnung */
switch($state):
case "";
auswahl ($state);
break;
case "berechnen";
berechnen ($state, $rooms, $pflstufe);
endswitch;

Leider gelingt es mir nicht, daß die beiden Werte aus den Selectfeldern an die berechnen-Funktion zu übergeben. Was mache ich falsch?
 
Ich habe den Fehler eingegrenz, nur leider kann ich mir diesen nicht erklären! Die Variable $state ändert sich nicht und kann somit das script nicht steuern. Aber warum?
 
Versuchsmal mit

PHP:
Function berechnen ($rooms, $pflstufe){
$result = mysql_query("SELECT rooms, pflstufe FROM care WHERE 
                         rooms = '".mysql_real_escape_string($_POST['rooms']."' AND 
                         pflstufe = '".mysql_real_escape_string($_POST['pflstufe']."'") 
              or die("Select-Fehler: ".mysql_error());

while($row = mysql_fetch_array($result)) // schleife solange ausführen bis resultset keine zeilen mehr hat
{
echo($row['pflstufe']);
}

Das mysql_real_escape_string() habe ich wegen folgendem Sicherheitsproblem mit eingefügt.

http://de.wikipedia.org/wiki/SQL-Injektion

Gruß Matze202.
 
Zuletzt bearbeitet:
Habe ich versucht und er hat ein unerwartetes ; laut: Parse error: parse error, unexpected ';' in /homepages/20/d170807514/htdocs/test/liste.php on line 54, aber wo?
 
Versuchs jetzt nochmal, da hat sich irgendwie ein ; in deinen Code des 1. Posts rein gemogelt, welchen ich übernommen hatte und mir nicht sofort aufgefallen war.

Edit: in meinem letzten Post habe ich es raus genommen.
Edit2: dann war mir noch aufgefallen, dass du das Feld pflstufe nicht ins SELECT ... FROM eingetragen hattest.

Gruß Matze202.
 
Zuletzt bearbeitet:
Zurück