Variables Formular mit Datenbankeinträgen

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

  • Variables Formular mit Datenbankeinträgen

    Hallo,

    ich habe ein "kleines" Problem und zwar möchte ich ein Formular erstellen mit dem eine variable Anzahl von Datensätzen in eine Datenbank geschrieben werden.

    Funktionsprinzip:
    Ich habe eine Auswahlmöglichkeit wie viele Mannschaften in die Datenbank eingetragen werden sollen. Je nach Eingabe erscheint dann ein Formular in dem entsprechend viele Felder zum eintragen der Mannschaften wie eingegeben erscheinen.

    Code:
    $anz=$_GET['anz'];
    
    echo "
    <b>Mannschaften eintragen:</b><br>
    ==================================<br><br>
    <form action='$PHP_SELF' method='post'>
    <table>";
     
     for ($i=1; $i<=$anz; $i++) {
    
    echo "
    	<tr>
    	   <td>Mannschaft $i:</td>
    	   <td><input type='text' name='Mannschaft$i' size='25'></td>
    	   <td><input type='hidden' name='ID$i' value='$i'></td>
    	</tr>";
      
     }
    
    echo " 
    </table>
    <input type='submit' value='Anlegen' name='anlegen'>
    </form>";
    Das klappt auch soweit ganz gut.

    Kommen wir zum eigentlichen Problem:

    Man könnte das ganze recht unflexibel lösen indem man für jede Variable einen extra Eintag macht:

    Code:
    $ID1=$_POST['ID1'];
    $Mannschaft1=$_POST['Mannschaft1'];
    $ID2=$_POST['ID2'];
    $Mannschaft2=$_POST['Mannschaft2'];
    ... usw...
    und das eintragen in die Datenbank mit:
    Code:
    if(isset($_POST['anlegen']))
    {
    $eintragen1="INSERT INTO mannschaften
    				(ID, Mannschaft)
    			VALUES
    				('$ID1', '$Mannschaft1')";
    $eintragen2="INSERT INTO mannschaften
    				(ID, Mannschaft)
    			VALUES
    				('$ID2', '$Mannschaft2')";
    ...usw...
    
    mysql_query($eintragen1) or die(mysql_error());
    mysql_query($eintragen2) or die(mysql_error());
    ..usw...
    }
    Da man aber 12-24 Mannschaften eintragen können soll ist das sehr schreibintensiv und sehr viel Quellcode.

    Ich würde den unteren Code gerne genauso flexibel gestalten wie das Formular oben.

    Ich habe schon versucht den Teil mit dem Eintragen in die Datenbank folgendermaßen zu lösen:

    Code:
    for ($i=1; $i<=$anz; $i++) {
    $eintr="$".eintragen.$i;
    
    mysql_query($eintr) or die(mysql_error());
    }
    Allerdings wird dadurch leider nicht die Variable erzeugt die ich brauche. Für $eintr steht dann zwar das passende $eintragen1 allerdings wird es nicht als Variable erkannt.
    Den Part darüber würde ich auch gerne Variabel gestalten aber leider finde ich keinen Weg der Funktioniert.

    Ich hoffe ihr habt ein paar hilfreiche Tipps für mich. Vllt habe ich ja auch nen kompletten Denkfehler drin und das ganze geht anders ganz einfach....

    Gruß

  • #2
    Mit Arrays und foreach könntest du dir das ganze ziemlich flexibel gestalten.
    gruss Chris

    [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

    Kommentar


    • #3
      benenne die felder wie folgt
      Code:
      name='ID[$i]'
      und schau dir, was in $_POST steht.

      daraus kannst du dann ein insert-statement bilden und es ausführen.

      Kommentar


      • #4
        schonmal danke für die Antworten.

        Ich habe das Formular jetzt folgendermaßen geändert:

        Code:
        <form action='$PHP_SELF' method='post'>
        <table>";
         
         for ($i=1; $i<=$anz; $i++) {
        
        echo "
        	<tr>
        	   <td>Klasse $i:</td>
        	   <td><input type='text' name='Mannschaft[$i]' size='25'></td>
        	   <td><input type='hidden' name='ID[$i]' value='$i'></td>
        	</tr>";
          
         }
        
        echo " 
        </table>
        <input type='submit' value='Anlegen' name='anlegen'>
        </form>";

        die Ausgabe von $_POST
        Code:
        if(isset($_POST['anlegen']))
        {
        
        echo "$_POST";
        }
        ist "Array"


        Ich verstehe noch nicht so ganz, wie ich aus dem Formular ein Array bekomme und wie ich das auswerten kann.

        Kommentar


        • #5
          Original geschrieben von Ch!ll0R-K!ll0R
          die Ausgabe von $_POST
          echo "$_POST";
          ist "Array"
          D'oh ... natürlich ist sie das, weil sich komplette Arrays nicht mit echo ausgeben lassen.

          Nutze var_dump/print_r.

          (Und gewöhne dir die Idiotie ab, um einfache Variablen Anführungszeichen drumherumzusetzen.)
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar

          Lädt...
          X