INSERT nach mehreren <select>Feldern

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • INSERT nach mehreren <select>Feldern

    ich habe eine db bei der mehrere werte aus select feldern in meine db eingetragen werden. die input felder werden übernommen. die werte aus dem select aber nicht.
    PHP-Code:
    <?php
    if($eintragen
    {
    $sql "INSERT INTO links 
    VALUES ('','
    $url','$name','$sport','$art','$land')";
    mysql_query($sql$connect) or 
    die(
    "Die Daten konnten nicht in die Datenbank aufgenommen werden!");

    echo 
    '<tr><td>Die Daten wurden in die Datenbank aufgenommen.';
    echo 
    '<br>'.$sql;
    mysql_close();
    }
    ?>
    <form method="post" action="<?php echo $PHP_SELF?>" name="links">
    <table border=0>
    <tr><td><b>Link hinzuf&uuml;gen:
    <tr><td>
      <table border="0">
      <tr><td>URL
    <td><input type="text" name="url" cols="40" rows="1" value="http://">
      <tr><td>Name
    <td><input type="text" name="name" cols="40" rows="1">
      <tr><td>Sportart
    <td><select><option value="0" name="sport[]" multiple>- - -</option>
    <option value="1" name="sport[]" multiple>Beach Soccer</option>
    <option value="2" name="sport[]" multiple>Futsal</option>
    <option value="3" name="sport[]" multiple>Street Soccer</option>
    <option value="4" name="sport[]" multiple>Foot Volley</option>
    <option value="5" name="sport[]" multiple>Fu&szlig;ball</option>
     </select>
      <tr><td>Art 
    <td><select><option value="0" name="art[]" multiple>- - -</option>
    <option value="1" name="art[]" multiple>Verband</option>
    <option value="2" name="art[]" multiple>Verein</option>
    <option value="3" name="art[]" multiple>sonstige dt.</option>
    <option value="4" name="art[]" multiple>sonstige int.</option>
    </select>
      <tr><td>Land
    <td><select><option value="0" name="land[]" multiple>- - -</option>
    <option value="1" name="land[]" multiple>&Ouml;sterr.</option>
    <option value="5" name="land[]" multiple>int.</option>
    </select>
     <tr><td colspan="2" align="right">
        <input type="submit" value="Eintragen" name="eintragen">
      </table>
    </table>
    </form>

  • #2
    Wie auch. Wenn Du Namen so vergibst "name="art[]"", wird ein Array erzeugt. Das musst Du natürlich erstmal in Strings zerteilen, bevor Du es eintragen kannst.
    h.a.n.d.
    Schmalle

    http://impressed.by
    http://blog.schmalenberger.it



    Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
    ... nur ohne :-)

    Kommentar


    • #3
      brauch ich da explode() oder sowas

      Kommentar


      • #4
        eher foreach()

        Frage: Wenn Du nicht weisst, was ein Ararray ist / wie man damit umgeht, warum benutzt Du siue dann?
        h.a.n.d.
        Schmalle

        http://impressed.by
        http://blog.schmalenberger.it



        Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
        ... nur ohne :-)

        Kommentar


        • #5
          Hallo,

          das Problem ist, daß bei Dir (noch) gar keine Arrays erzeugt werden.

          Nimm bitte die Attribute name="xyz[]" und "multiple" nur in den SELECT-Tag, nicht in die einzelnen OPTION-Tags.
          Auch solltest Du rows und cols nicht in INPUT-Tags benutzen, höchstens in TEXTAREA. HTML-Grundlagen.
          Denn dies ist unzulässig.
          Beispiel:
          Code:
          <select name="sport[]" multiple size="11">
          <option value=1>Turniertanz</option>
          <option value=2>Schach</option>
          ...
          </select>
          Wenn jetzt das Forumlar abgesendet wird, erhälst Du im $_POST ein Element $_POST["sport"];
          Je nach Anzahl der ausgewählten Sportarten (0..n), hat dieses Element wiederum 0 bis n Elemente.

          Zur Weiterverarbeitung könntest Du zB eine Schleife bauen:
          PHP-Code:
          $sport=isset($_POST["sport"]) ? $_POST["sport"] : array();
          for (
          $i=0$i<count($sport); $i++)
            {
            
          $sportart=$sport[$i];  // enthält den Value-Wert der gew. Sportart
            // mach hier etwas mit der jeweiligen sportart...
            

          nice day
          Quickborner

          Kommentar


          • #6
            irgendwann muß ich es sowieso lernen!
            und wie kann man das umgehen. ohne die eckigen klammern ist auch nichts gegangen.

            Kommentar


            • #7
              vielleicht gibst du deinen selects mal einen namen? woher soll php wissen, welcher variablen es einen wert aus der option zuweisen soll?
              Kissolino.com

              Kommentar

              Lädt...
              X