Mehrere SQL Abfragen anhand eines Formular

Schreib doch mal die komplette Fehlermeldung hin und Deinen Quellcode um die Zeile +- 20 Zeilen. Dann lässt sich der Fehler auch leichter finden. Und bitte nutze die PHP-Tags, damit der Code Syntax-Highlighting erfährt ( [ php ] Dein Code [/ php] ohne Leerzeichen).
 
das suchformular:
PHP:
<form action = "suchen.php" method = "post" multiple>
<input type="radio" name="age"
       value="1" checked> 6 - 8 <p>
    <input type="radio" name="age"
        value="2"> 9 - 11 <p>
    <input type="radio" name="age"
        value="3">12 - 14 <p>

    <input type="checkbox" name="geschlecht[]" value="männlich" >
        männlich <p>
    <input type="checkbox" name="geschlecht[]" value="weiblich" >
        weiblich <p>

    <input type="submit">
    <input type="reset">
</form>

suchen php:

PHP:
$sqlab = "select name, age, geschlecht ";
   $sqlab .= " from login where ";

   if ($age==1)
      $sqlab .= "age >= 6 and age <= 8";
   else if ($age==2)
      $sqlab .= "age > 9 and age <= 11";
   else
      $sqlab .= "age > 12 and age <= 14";


    if (isset($_POST['geschlecht']) && (size_of($_POST['geschlecht'])<2)) {
    if ($_POST['geschlecht'][0]=='männlich') {
        $sqlab.=" and geschlecht LIKE 'männlich'";
    } else if ($_POST['geschlecht'][0]=='weiblich') {
        $sqlab.=" and geschlecht LIKE  weiblich'";
    }
   }


   $res = mysql_db_query("datenbankname", $sqlab);
   $num = mysql_num_rows($res);
   if ($num==0)
      echo "keine passenden Datensätze gefunden";

   for ($i=0; $i<$num; $i++)
   {
      $name = mysql_result($res, $i, "name");
      $age = mysql_result($res, $i, "age");
      $geschlecht = mysql_result($res, $i, "geschlecht");


      echo "$name, $age, $haarfarbe <br>";
   }
 
Bei dem weiblich von dem SQL-Teil-String fehlt noch ein Hochkomma.
Welchen Datentyp hat denn Dein Feld `geschlecht`? Ist es wirklich ein CHAR und Du schreibst männlich und weiblich da rein?
Die Schleife würde ich auch anders gestalten:
PHP:
   while ($row = mysql_fetch_assoc($res))
   {
      echo $row['name'].", ".$row['age']."usw.";
   }
 
Ja, in das Feld Geschlecht wird nach m und w unterschieden. Typ CHAR...
Bekomme nach der checkbox-Auswahl immer folgende Fehlermeldung:
Fatal error: Call to undefined function: size_of() in ....

Irgendwie scheint da wohl mit dem size_of etwas nicht zu stimmen!

Gruss Anna
 
Uuuups, sizeof wird ohne Unterstrich geschrieben.
Wenn Du in das Feld m bzw. w reinschreibst, musst Du natürlich auch auf m bzw. w und nicht auf männlich bzw. weiblich prüfen, sonst erhältst du keine Ergebnisse.
 
YIIIIIIIIIIIIIIIIIPPPPPPIIIIHHHHHHH Es klappt... 1000 Dank und 1000 Küsse...
DANKE, DANKE, DANKE.... auch wenn es eine schwere Geburt war.
Habe m und w nur abgekürzt. Und an Deine anderen Tipps, was das POST im age und die while statt for schleife angeht, mache ich mich irgendwann man mal drüber. Werde jetzt erstmal gut gelaunt in das Wochenende gehen. Wünsche Dir auch ein solches schönes und danke nochmal für Deine tolle Unterstüzung.

Ganz viele liebe Grüsse
Anna
 
Zurück