kostenloser Webspace werbefrei: lima-city


[PHP]Variable Anzahl Formularfelder in DB eintragen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    superheld

    superheld hat kostenlosen Webspace.

    so, habe folgendes Problem dabei, mehrere musikgruppen in eine datenbank in die selbe tabelle einzutragen:
    als erstes soll der benutzer die anzahl der bands eintragen, auf der nächsten seite wird dann die gewählte anzahl an feldern generiert:
    if(isset($_POST['anzahl'])){
        $ll = $_POST['anzahl'];
         ?>
         <form action="#" method="POST">
        ... 
    <?php
        $i=1;
        while($i<($ll+1)){
          echo "<tr><td>Band ".$i."</td><td><input type='text' name='band".$i."'></td></tr>";
          $i++;
        }
        echo "<input type='hidden' name='bandcount' value='$i'>";
    ?>
    
         </table>
        <?php
          echo "<input type='hidden' name='autor' value='".$_SESSION['ID']."'>";
        ?>
        <input type="submit" name="submit" value="eintragen">
        </form>
       <?php
        } else{
          echo "Bitte Anzahl der Bands eingeben: <form action='index.php?section=festivaladd' method='POST'><input type='text' name='anzahl'><input type='submit'></form>";
        }
       }


    nun soll folgendes passieren: in eine Tabelle wird die veranstaltung eingetragen mit zeit, ort, name usw. und in eine andere werden sämtliche bands mit name, veranstaltungsname und datum der veranstaltung eingetragen, damit ich einmal ne übersicht über alle veranstaltungen einfach listen kann und die bands einfach für eine veranstaltung auslesen kann...

    $festname = $_POST['Name'];
         $wann = $_POST['date'];
         $wo = $_POST['ort'];
         $preis = $_POST['preis'];
         $flyer = $_POST['flyer'];
         $autor = $_POST['autor'];
         $info = $_POST['info'];
         $ll = $_POST['bandcount'];
         $i=1;
         while($i<($ll+1)){
          $bandx = "band".$i;
          $band.$i = $_POST['$bandx'];
              $sql = "INSERT INTO festbands (BAND, FESTIVAL, DATUM) VALUES ('$band".$i."', '$festname', '$wann')";
             mysql_query($sql) OR die(mysql_error());
           $i++;
          }
         die;
         $sql = "INSERT INTO festivals (NAME, DATUM, WO, PREIS, INFO, AUTOR, LASTEDIT) VALUES ('$festname', '$wann', '$wo', '$preis', '$info', '$autor','$autor')";
         mysql_query($sql) OR die(mysql_error());


    das ganze spuckt mir dann immer folgenden fehler aus:
    Notice: Undefined index: $bandx in /home/webpages/lima-city/superheld/html/ezine/festivaladd.php on line 16

    Notice: Undefined variable: band in /home/webpages/lima-city/superheld/html/ezine/festivaladd.php on line 16

    Notice: Undefined variable: band in /home/webpages/lima-city/superheld/html/ezine/festivaladd.php on line 17
    Table 'DBxxx.festbands' doesn't exist


    ich muss die bands ja jeweils mit einer neuen abfrage in die tabelle "festbands" eintragen, oder gibts da ne einfachere variante?
    mein fehler liegt ja scheinbar bei der verkettung der beiden variablen... was passtn da nich?

    PS: die fehlerzeilen sind im posting die zeilen 11/12 im zweiten scriptteil

    Beitrag geaendert: 3.4.2007 20:22:34 von superheld

    Beitrag geaendert: 3.4.2007 20:23:08 von superheld
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. $bandx = 'band'.$i;
    $band.$i = $_POST['$bandx'];

    Was versuchst du, mit der zweiten Zeile zu erreichen?

    In der ersten Zeile verknüpfst du "band" mit der Var i und speicherst das ganze in $bandx.

    In der zweiten Zeile verknüpfst du den inhalt der Var $band mit dem Inhalt der Var $i.

    Wenn du mir sagst, was du hier erreichen willst, schreib ich's richtig, aber so mach das ganze nicht viel Sinn.
  4. Autor dieses Themas

    superheld

    superheld hat kostenlosen Webspace.

    hm, naja, ich muss ja nacheinander die bands aus dem POST rauslesen also dass z.b. dasteht:
    $band5 = $_POST['abcde']; (wenn abcde die fünfte eingetragene band ist)

    stimmt, ich brauch gar keine verknüpfung da, $band = ...; reicht...
    allerdings kommt dann immernoch die fehlermeldung:
    Notice: Undefined index: $bandx in /home/webpages/lima-city/superheld/html/ezine/festivaladd.php on line 16

    aber was ich damit bezwecke ist hoffentlich klar geworden...
  5. Also die Fehlermeldung sagt, du willst auf einen Index mit dem Namen $bandx zugreiffen.
    Schreib mal [$bandx] statt ['$bandx']
  6. Autor dieses Themas

    superheld

    superheld hat kostenlosen Webspace.

    dankeschön, das war der ganze fehler ^^''
  7. Stets zu Diensten :biggrin:
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!