Automatisch befüllte select-liste auswerten

milea

Mitglied
Hallo!

Ich habe - dachte ich- eine ganz simple Suche gebastelt. Es gibt 2 Felder "schulung" und "veranstalter". Der user kann seinen gewünschten Begriff in einer select-liste auswählen. Die Inhalte der Liste werden aus der DB gelesen. Da klappt soweit.


Formular
PHP:
                 <form action="suchen.php" method="GET" name="suchen">
                 <b>Schulungsmaßnahme &nbsp;</b>
                 <select size="1" style="width:500px;background-color:#F2F2F2;" name="schulung_id">
                       <?php
                       # Auslesen der Auswahloptionen aus der Datenbank
                           $sql = "SELECT schulung FROM bewertungen_tab ORDER BY id";
                           $result = mysql_query($sql) OR die("<br>Anfrage von Variable SQL konnte nicht ausgeführt werden.");
                           $num = mysql_num_rows($result);

                           #Schleife zum kompletten Auslesen
                         for($i = 0; $i<$num; $i++){
                           $schulung_id = mysql_result($result,$i,'id');
                           $schulung_name = mysql_result($result,$i,'schulung');
                                 if ($schulung == $schulung_id){
                                 echo '<option value="'.$schulung_id.'" selected>'.$schulung_name.'</option>';
                                 }
                                 else{
                                 echo '<option value="'.$schulung_id.'">'.$schulung_name.'</option>';
                                 }
                         }# Ende for-Schleife
                       php?>
                 </select>
                 <br>
                 <br>
                 und/oder
                 <br>
                 <br>
                 <b>Schulungsveranstalter&nbsp;</b>
                 <select size="1" style="width:500px;background-color:#F2F2F2;" name="veranstalter_id">
                       <?php
                       # Auslesen der Auswahloptionen aus der Datenbank
                           $sql = "SELECT veranstalter FROM bewertungen_tab ORDER BY id";
                           $result = mysql_query($sql) OR die("<br>Anfrage von Variable SQL konnte nicht ausgeführt werden.");
                           $num = mysql_num_rows($result);

                           #Schleife zum kompletten Auslesen
                         for($i = 0; $i<$num; $i++){
                           $veranstalter_id = mysql_result($result,$i,'id');
                           $veranstalter_name = mysql_result($result,$i,'veranstalter');
                                 if ($veranstalter == $veranstalter_id){
                                 echo '<option value="'.$veranstalter_id.'" selected>'.$veranstalter_name.'</option>';
                                 }
                                 else{
                                 echo '<option value="'.$veranstalter_id.'">'.$veranstalter_name.'</option>';
                                 }
                         }# Ende for-Schleife
                       php?>

                 </select>

                 <p style="text-align:right"><input type="submit" name="submitsuche" value="suchen"></p>

                 </form>


suchen.php
PHP:
include("dblogon.php");


 echo 'warum';
 echo $_GET['veranstaltung_id'];
 echo $_GET['schulung_id'];

Problem ist, dass beim Absenden des Formulars die Daten nicht weitergeben werden. Also schulung_id und veranstaltung_id sind leer auch wenn was ausgewählt wurde.

Fehlermeldung gibts nicht. Es bleibt alles weiß und leer ;)
Und wenn ich als Test ne select-liste aus reinen HTML mache funktionierts. Die Variablen werden dann normal mitgegeben. Also muss es am Auslesen aus der DB liegen und das die ausgewählte <option> nicht weitergeben wird. Ich erkenn den Fehler nicht. Hab ich was vergessen? Bitte helft mir! danke schon mal :)
 
So wie ich das auf die Schnelle sehe, liest du die ID-Felder doch gar nicht aus.

PHP:
$sql = "SELECT schulung FROM bewertungen_tab ORDER BY id";
$sql = "SELECT veranstalter FROM bewertungen_tab ORDER BY id";

Erweitere mal die SQL-Anweisungen jeweils um das Feld "id" und es müsste gehen:

PHP:
$sql = "SELECT id, schulung FROM bewertungen_tab ORDER BY id";
$sql = "SELECT id, veranstalter FROM bewertungen_tab ORDER BY id";

Schau dir vielleicht aus mal den Quelltext der Seite an. Dann erkennst du den Fehler vermutlich auch!

Gruß Thomas
 
Zurück