Hans: MEhrfachauswahl von Dropdown weiterverarbeiten

Hallo,
habe ein Formular und in diesem ein Dropdown Feld (also Select).
Frage: Wie stelle ich das ein, dass mehrfach Auswahl möglich ist? Wie verarbeite ich es, dass ich die Mehrfachauswahl in eine Daetnbank schreibe. Ich weiß das sind Anfängerfragen aber irgendwie scheitere ich....

<form action="neue_seite.php" method="post">
<select name="id">
<option value="1">Irgendwas</option>
<option value="2">Irgendwo</option>
<option value="3">Irgendwie</option>
<option value="4">Irgendwer</option>
<option value="5">Irgendwann</option>
</select>
<der einfachheithalber: abschickknopf>
</form>

auf neuer_seite.php sollen dann die übergebenen Werte in die Datenbank geschrieben werden nur wir? insert into tabelle (id) value ($_POST["id"][]) oder wie??

Wäre klasse wenn ihr mir weiterhelfen könntet!
Grüssle,
Hans

  1. OK ein bisschen weiter bin ich schon anscheinend muß es so heißen:
    <form action="neue_seite.php" method="post">
    <select name="id[]" multiple>
    <option value="1">Irgendwas</option>
    <option value="2">Irgendwo</option>
    <option value="3">Irgendwie</option>
    <option value="4">Irgendwer</option>
    <option value="5">Irgendwann</option>
    </select>
    <der einfachheithalber: abschickknopf>
    </form>

    aber wie verarbeite ich das weiter?
    foreach ($_POST["id"] $inhalt=>$wert)
    {
    insert into tabelle (id) ($wert)
    }

    Grüssle,
    Hans

    1. OK ein bisschen weiter bin ich schon anscheinend muß es so heißen:
      <form action="neue_seite.php" method="post">
      <select name="id[]" multiple>
      <option value="1">Irgendwas</option>
      <option value="2">Irgendwo</option>
      <option value="3">Irgendwie</option>
      <option value="4">Irgendwer</option>
      <option value="5">Irgendwann</option>
      </select>
      <der einfachheithalber: abschickknopf>
      </form>

      aber wie verarbeite ich das weiter?

      Idealerweise in einer normalisierten Datenbank mit einer n:m oder eine 1:n Beziehung. Die alternative ist, die Trennzeichengetrennt (tolles Wort) in ein Feld zu schreiben. Dann hast du aber früher oder später Probleme mit dem rauslesen der Daten.

      1. Idealerweise in einer normalisierten Datenbank mit einer n:m oder eine 1:n Beziehung. Die alternative ist, die Trennzeichengetrennt (tolles Wort) in ein Feld zu schreiben. Dann hast du aber früher oder später Probleme mit dem rauslesen der Daten.

        danke, ja es ist eine normaliesierte Datenbank und die Tabelle enthält eine Zuordnung also sprich es sollen dann Datensätze wie folgt kommen
        tabelle
        inhalt_id 2
        zusatz_id 1
        ----
        inhalt_id 2
        zusatz_id 3
        ---
        inhalt_id 2
        zusatz_id 5

        etc
        natürlich mit noch einem Feld tabellen_id als autoincrement

        Mir ist nur nicht ganz klar, wie die Mehrfachauswahl eingetragen werden kann (hatte es bisher so, daß ich das Select nur eine Auswahl zugelassen hat und man das Formular eben mehrfach abschicken muß um alle Unterpunkte einzutragen -> aber das ist ja nicht wirklich die richtige Lösung....)

        Grüßle,
        Hans

        1. Mir ist nur nicht ganz klar, wie die Mehrfachauswahl eingetragen werden kann (hatte es bisher so, daß ich das Select nur eine Auswahl zugelassen hat und man das Formular eben mehrfach abschicken muß um alle Unterpunkte einzutragen -> aber das ist ja nicht wirklich die richtige Lösung....)

          foreach hast du ja bereits gefunden - in dieser Schleife kannst du problemlos mehrere SQL-Statements zusammensetzen und diese dann "gemeinsam" absetzen. Mit einem einzelnen mysql_query() geht das aber nicht mehr, du muss die Abfragen dann ebenfalls in einer Schleife an die Datenbank schicken (oder die einzelnen Abfragen gleich in deiner foreach-Schleife durchführen.

          1. Hi,

            foreach hast du ja bereits gefunden - in dieser Schleife kannst du problemlos mehrere SQL-Statements zusammensetzen und diese dann "gemeinsam" absetzen. Mit einem einzelnen mysql_query() geht das aber nicht mehr, du muss die Abfragen dann ebenfalls in einer Schleife an die Datenbank schicken (oder die einzelnen Abfragen gleich in deiner foreach-Schleife durchführen.

            Oder gleich ein INSERT-Statement generieren, das mehrere Datensaetze in "einem Rutsch" anlegt.

            MfG ChrisB

            --
            „This is the author's opinion, not necessarily that of Starbucks.“