INSERT nach mehreren <select>Feldern

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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 :-)

    Comment


    • #3
      brauch ich da explode() oder sowas

      Comment


      • #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 :-)

        Comment


        • #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

          Comment


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

            Comment


            • #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

              Comment

              Working...
              X