Array aus Dropdown in Datenbank schreiben

Coldstorm

Gesperrt
Hi,
ich will einen dynamischen Stundenplan für 3 Klassen erstellen, der sich wöchentlich ändert, deswegen dynamisch....
Hier mal ein Überblick über mein Datenmodell.
Ich hab bereits eine Adminoberfläche für Lehrer und Fächer, wo ich diese hinzufügen, ändern und löschen kann.
Für die Tabelle baptime_stundenverteilung, hab ich schon versucht ein Formular mit Dropwdowns vorzubereiten. Anschließend möchte ich die Daten in die Datenbank schreiben. Ich weiß, dass ich dazu wahrscheinlich ein Array brauche. Denn jeder einzelne Eintrag muss eindeutig identifiziert sein. Ich hab das schon versucht, aber er macht keine Einträge, muss ich da noch eine foreach-Schleife einfügen für das Array? Bitte helft mir weiter! Hier mal die Oberfläche wie es ausschaut und anschließend der Code.

Formular
std.inc.php
PHP:
.<br>
<h2>Stundenplan für</h2>
<?php

$col1 = "#ffffff" ; 
$col2 = "#c8121e";

  echo "<table border=\"0\">"; 

?>    
<form action = "./?p=std_add" method = "post">
     <colgroup>
        <col width="165"><col width="165"><col width="165"><col width="165"><col width="165">
    </colgroup>
    <tr bgcolor="#c8121e">
        <th>Montag</th><th>Dienstag</th><th>Mittwoch</th><th>Donnerstag</th><th>Freitag</th>
    </tr>
    <?php 
        for ($j=1; $j<=9; $j++){
        $color = ($color == $col1) ? $col2 : $col1;
            echo"<tr bgcolor=\"$color\">";
                for ($i=1; $i<=5; $i++){
                    echo"<td>\n";
                        $sql = 'SELECT LehrerID, Name FROM baptime_lehrer'; $query = mysql_query($sql);
                        echo "<p><select size='1' name=LehrerID[]'>";
                            while ($ds = mysql_fetch_object($query)){
                                echo '<option value="'.$ds->LehrerID.'">'.$ds->Name.'</option>';}
                        $sql = 'SELECT FachID, Bezeichnung FROM baptime_fach'; $query = mysql_query($sql);
                        echo "<p><select size='1' name='FachID[]'>";
                            while ($ds = mysql_fetch_object($query)){
                                echo '<option value="'.$ds->FachID.'">'.$ds->Bezeichnung.'</option>'; }
                    echo"</td>\n";
                }
            echo"</tr>\n";
        }
        echo "</table>";
    ?>

<input type="submit" name="Submit" value="Speichern"><br><br>
</form>

Insert-Befehl(der untere war zum Testen)
PHP:
<?
include("../includes/db.inc.php");//Verbindung zur Datenbank herstellen
include("../includes/functions.inc.php");

$LehrerID = $_POST['LehrerID'][$i];
$FachID = $_POST['FachID'][$i];
$Stunde = $_POST['Stunde'];  
$Tag = $_POST['Tag']; 
$gruppe = $_POST['gruppe']; 

  
 if (empty($LehrerID) || empty($FachID)) {//Ist Feld leer?
    echo "Bitte gehen Sie <a href=\"javascript:history.back();\">zur&uuml;ck</a> und f&uuml;llen Sie alle Felder aus!";
}
    else
    {
    
    
        mysql_query("INSERT INTO baptime_stundenverteilung (LehrerID, FachID, Stunde, Tag, gruppe) VALUES('$LehrerID[$i]', '$FachID[$i]', $Stunde, '$Tag', '$gruppe')"); 
        
        
        
    
    echo "$LehrerID[20]";
    echo "<br>";
    echo "$FachID[1][20]";
    echo "<br>";
    echo "$Stunde";
    echo "<br>";
    echo "$Tag";
    echo "<br>";
    echo "$gruppe";
    


    echo "Stunde wurde eingetragen";
     } 
?>

Wenn ich bei std_add.inc.php oben schreibe :

echo '<pre>'.print_r($_POST,1).'</pre>';

gibt er mir folgendes aus(die ersten paar Dropdowns hab ich hier verändert,sollte also funktionieren...

PHP:
Array
(
    [LehrerID] => Array
        (
            [0] => 3
            [1] => 4
            [2] => 1
            [3] => 1
            [4] => 1
            [5] => 1
            [6] => 1
            [7] => 1
            [8] => 1
            [9] => 1
            [10] => 1
            [11] => 1
            [12] => 1
            [13] => 1
            [14] => 1
            [15] => 1
            [16] => 1
            [17] => 1
            [18] => 1
            [19] => 1
            [20] => 1
            [21] => 1
            [22] => 1
            [23] => 1
            [24] => 1
            [25] => 1
            [26] => 1
            [27] => 1
            [28] => 1
            [29] => 1
            [30] => 1
            [31] => 1
            [32] => 1
            [33] => 1
            [34] => 1
            [35] => 1
            [36] => 1
            [37] => 1
            [38] => 1
            [39] => 1
            [40] => 1
            [41] => 1
            [42] => 1
            [43] => 1
            [44] => 1
        )

    [FachID] => Array
        (
            [0] => 7
            [1] => 10
            [2] => 1
            [3] => 1
            [4] => 1
            [5] => 1
            [6] => 1
            [7] => 1
            [8] => 1
            [9] => 1
            [10] => 1
            [11] => 1
            [12] => 1
            [13] => 1
            [14] => 1
            [15] => 1
            [16] => 1
            [17] => 1
            [18] => 1
            [19] => 1
            [20] => 1
            [21] => 1
            [22] => 1
            [23] => 1
            [24] => 1
            [25] => 1
            [26] => 1
            [27] => 1
            [28] => 1
            [29] => 1
            [30] => 1
            [31] => 1
            [32] => 1
            [33] => 1
            [34] => 1
            [35] => 1
            [36] => 1
            [37] => 1
            [38] => 1
            [39] => 1
            [40] => 1
            [41] => 1
            [42] => 1
            [43] => 1
            [44] => 1
        )

    [Submit] => Speichern
)

Bitte gehen Sie zurück und füllen Sie alle Felder aus!

Könnte mir jemand auf die Sprünge helfen, die Eingaben in die Datenbank zu schreiben? Am besten so, dass anschließend dann nicht die LehrerID und FachID, sondern der Name und die Bezeichnung angezeigt werden...

Vielen Dank im Voraus
Coldstorm
 
gruppe kommt von der Tabelle groups,
Stunde ist, wann die Stunde an einem Tag gehalten wird 1-9 bzw. 0-8
Tag ist dann das genaue Datum...allerdings weiß ich noch nicht, wie ich diese umsetze

Es geht jetzt erstmal nur um FachID und LehrerID, die anderen(außer dem AI-Wert Primärschlüssel) hab ich auf NULL gesetzt
 
Achso ich dachte da wäre noch irgendwo ein Formular-Teil versteckt oder so ;)

Eintragen könnstest du die Daten so:
PHP:
$count = count( $_POST['LehrerID'] );
$sqlQuery = array();
for( $i = 0; $i < $count; $i++ )
{
    $sqlQuery[$i] = '   INSERT INTO
                            `baptime_stundenverteilung`
                        (
                            `LehrerID`,
                            `FachID`
                        )
                        VALUES
                        (
                            '.$_POST['LehrerID'][$i].',
                            '.$_POST['FachID'][$i].'
                        )
                    ';
    if( !mysql_query( $sqlQuery[$i] ) )
    {
        echo mysql_error()."\n";
    }
}
$sqlQuery = ''; // $sqlQuery leeren
 
Super,danke, es funktioniert.
Weißt du vielleicht auch,wie ich das am besten mache mit der Ausgabe?
Ich meine, das ganze soll ja dann am Ende ungefähr so ausschauen...da kann ich ja keine IDs ausgeben für die Benutzer, und das mit Datum...naja das ist nochmal ein Stück schwieriger...
 
Zurück