Matze: Werte aus einer multiple Selectbox auslesen

Hallo,

Ich habe Probleme beim Auslesen der Werte aus einer Mehrfachauswahlbox. Die Box habe ich oben wie folgt deklariert:

<select multiple name=cmbSports[] class=choosebox >

Auf der Folgeseite wollte ich die Werte des Arrays innerhalb einer Schleife in die DB schreiben:

for($i=0; $i <= count($_REQUEST['cmbSports']); $i++)
{
$result = mysql_query("Insert into tusersports (UserID, sportsID)
    VALUES ($userid, '$_REQUEST['cmbSports'][i]')")
                  or die("Fehler!");
}

Was ist hier falsch? Sieht jemand den Fehler?

Danke für Eure Antworten!

Gruss Matze

  1. Moin!

    Ich habe Probleme beim Auslesen der Werte aus einer Mehrfachauswahlbox. Die Box habe ich oben wie folgt deklariert:

    <select multiple name=cmbSports[] class=choosebox >

    Wenn Attributwerte nicht nur aus Zahlen oder Buchstaben bestehen, müssen sie in Anführungszeichen (einfache oder doppelte) eingeschlossen werden! Im Zweifel schließe Attributwerte _immer_ in Anführungszeichen ein.

    Auf der Folgeseite wollte ich die Werte des Arrays innerhalb einer Schleife in die DB schreiben:

    for($i=0; $i <= count($_REQUEST['cmbSports']); $i++)
    {
    $result = mysql_query("Insert into tusersports (UserID, sportsID)
        VALUES ($userid, '$_REQUEST['cmbSports'][i]')")
                      or die("Fehler!");
    }

    Was ist hier falsch? Sieht jemand den Fehler?

    Was für ein Problem tritt auf?

    Vielleicht sagt dir die Datenbank, was falsch ist. Grundsätzlich: Packe dein SQL-Statement in eine Variable und übergib die Variable dem mysql_query. Dann kannst du nämlich hinterher auch das SQL-Statement im Fehlerfall ausgeben lassen.

    $sqlquery = "INSERT.....";
    $result=mysql_query($sqlquery) or die ("Fehler beim Query: ".$sqlquery."<br>MySQL sagt: ".mysql_error());

    - Sven Rautenberg

    --
    "Beim Stuff für's Web gibts kein Material, was sonst das Zeugs ist, aus dem die Sachen sind."
    (fastix®, 13. Oktober 2003, 02:26 Uhr -> </archiv/2003/10/60137/#m338340>)