misterunknown: Dropdown Auswahl in Datenbank speichern

Beitrag lesen

Moin,

ich bin mir nicht ganz sicher, aber ich glaube nicht, dass du weißt, was du tust. Ich versuche dir mal ein paar Tipps zu geben:

  
<form id="form1" name="Dropdown Auswahl" method="post" action="<?php echo $PHP_SELF; ?>">

PHP_SELF ist böse. Nimm stattdessen $_SERVER['SCRIPT_NAME'].

<select Emp Name='Lehrer'>  
  <option value="">--- Select ---</option>

2 Sachen:
  - Was macht das "Emp" im Select-Tag?
  - eine Option, die nicht ausgewählt werden soll, kann man http://de.selfhtml.org/javascript/objekte/elements.htm#disabled@title=disablen

$select = mysql_select_db($dbname, $verbindung) or die ("Datenbank konnte nicht ausgew&aumlhlt werden");  
  if (isset ($select)&&$select!=""){  
    $select=$_POST ['Lehrer'];  
  }

Du versuchst eine Datenbank zu wählen und schreibst den Ausgang dieses Versuches in eine Variable. Diese wird entweder true oder false enthalten. Dann prüfst du, ob diese boolsche Variable existiert und ob sie ungleich einem leeren String ist. Ist dass der Fall, überschreibst du diese Variable mit einem Element aus dem Post-Array. Mir ist absolut nicht klar, was das bedeuten soll; abgesehen davon ist bei dem Ansprechen des Post-Arrays ein Leerzeichen zuviel.

while($row_list=mysql_fetch_assoc($list)){  
?>  
  <option value="<?php echo $row_list['ID']; ?>"<?php if($row_list['ID']==$select){ echo "selected"; } ?>>  
    <?php echo $row_list['Name'];?>  
  </option>  
<?php  
}

Das ist ein sehr waghalsiges Konstrukt, da es den Umgang mit Kontextwechseln unnötig erschwert. Warum gibst du die relevanten Zeilen nicht mit PHP-internen Mitteln, wie echo oder print aus?

  
mysql_query("INSERT INTO auswahl (Lehrer) VALUES ($_POST ['Lehrer'])");

Jedes Mal, wenn deine Seite aufgerufen wird, schreibst du in eine Tabelle deiner Datenbank einen Datensatz, in dem die Spalte Lehrer mit dem entsprechenden Element des Post-Arrays gefüllt wird. Du prüfst weder, ob überhaupt ein Post-Array existiert, noch ob ein Element mit dem Schlüssel 'Lehrer' existiert. Demzufolge müsstest du entweder einen Fehler bekommen, oder haufenweise leere Datensätze in deiner Tabelle haben.

Ich habe die Übertragung bereits mit mysql_query("INSERT INTO auswahl (Zeit) VALUES ('".$_POST ['Zeit']."')"); versucht, doch leider klappt das nicht.

"Klappt nicht" ist keine Fehlerbeschreibung.

Mein Tipp: Lass dir in deinem Skript alle Fehler, Warnungen und Infos anzeigen, die PHP generiert. Das geht per error_reporting(E_ALL); . Das sind meist ganz vernünftige Meldungen, die du beheben kannst, aber das scheint nicht wirklich dein Problem zu sein. Dein Problem ist eher ein strukturelles. Ich denke nicht, dass du weißt, was das Skript genau macht. Ich empfehle dir ein Konzept aufzumalen, _was_ dein Skript tun soll und _wann_ es es tun soll. Erst danach ist es sinnvoll an die Implementierung zu gehen.

Grüße Marco