Mehrere Datensätze gleichzeitig in die Datenbank

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

  • Mehrere Datensätze gleichzeitig in die Datenbank

    Hallo,

    ich stecke in einem Problem fest und habe weder hier im Board, noch im WWW einen Codeschnipsel gefunden.

    Es werden in einem Formular mittels for-Schleife z.B. 10 Zeilen mit 5 <input>-Feldern generiert:
    Code:
    $zeilen = 10;
     for($z = 0; $z < $zeilen; $z++){
    	  echo "
    	  <tr>
    		<td align=\"center\"><input name=\"vorname$z\" type=\"text\" id=\"vorname$z\" value=\"\" size=\"20\" /></td>
    		<td align=\"center\"><input name=\"nachname$z\" type=\"text\" id=\"nachname$z\" value=\"\" size=\"20\" /></td>
    		<td align=\"center\"><input name=\"strasse$z\" type=\"text\" id=\"strasse$z\" value=\"\" size=\"20\" /></td>
    		<td align=\"center\"><input name=\"plz$z\" type=\"text\" id=\"plz$z\" value=\"\" size=\"20\" /></td>
    		<td align=\"center\"><input name=\"ort$z\" type=\"text\" id=\"ort$z\" value=\"\" size=\"20\" /></td>
    	  </tr>
    }
    Diese Felder sollen in die DB eingetragen werden:
    Code:
    $sql = "insert into toys (vorname, nachname, strasse, plz, ort)
                          values ('$vorname','$nachname','$strasse','$plz','$ort')";
    Mit welcher Schleife und welchen Konstrukten kann man das Einlesen der Daten aus 10 Datensätzen in die DB verwirklichen?
    Sicherlich macht auch die Benuutzung von Arrays Sinn - aber hier endet mein Know-How.

    Ich würde mich sehr über Tipps und Lösungsvorschläge freuen.

  • #2
    Versuche das
    PHP-Code:
    <?
    $zeilen = 10;
     for($z = 0; $z <= $zeilen; $z++){
          echo "<tr>
            <td align=\"center\"><input name=\"insert_ar[".$z."][vorname]\" type=\"text\" id=\"insert_ar[".$z."][vorname]\" value=\"\" size=\"20\"></td>
            <td align=\"center\"><input name=\"insert_ar[".$z."][nachname]\" type=\"text\" id=\"insert_ar[".$z."][nachname]\" value=\"\" size=\"20\"></td>
            <td align=\"center\"><input name=\"insert_ar[".$z."][strasse]\" type=\"text\" id=\"insert_ar[".$z."][strasse]\" value=\"\" size=\"20\"></td>
            <td align=\"center\"><input name=\"insert_ar[".$z."][plz]\" type=\"text\" id=\"insert_ar[".$z."][plz]\" value=\"\" size=\"20\"></td>
            <td align=\"center\"><input name=\"insert_ar[".$z."][ort]\" type=\"text\" id=\"insert_ar[".$z."][ort]\" value=\"\" size=\"20\"></td>
          </tr>";
    }
    ?>
    Eintragen:

    PHP-Code:

    for($z 0$z <= $zeilen$z++){
          
    $sql "insert into toys (vorname, nachname, strasse, plz, ort)
                          values ('
    $insert_ar[".$z."][vorname]','$insert_ar[".$z."][nachname]','$insert_ar[".$z."][strasse]','$insert_ar[".$z."][plz]','$insert_ar[".$z."][ort]')";
    $result mysql_query($sql);


    Allerdings würd ich sagen, dass es nicht beste Lösung ist, Inserts in ner Schleife auszuführen

    Sorry, hatte die query vergessen
    Zuletzt geändert von nofreak; 20.12.2005, 12:57.

    Kommentar


    • #3
      @nofreak: Wieso keine Schleife verwenden bzw. wie sollte es sonst gehen ?

      Gruß

      Le Cheffe

      Kommentar


      • #4
        Keine Ahnung, vielleicht gibts ja bessere wege via SQL, oder so...

        Kommentar


        • #5
          Moin,
          so würde ich es machen:
          PHP-Code:
          $sql "insert into toys (vorname, nachname, strasse, plz, ort) VALUES";
          for(
          $z 0$z <= $zeilen$z++)
          {
            
          $sql .=" ('".$insert_ar[$z]["vorname"]."',"
                   
          "'".$insert_ar[$z]["nachname"]."',"
                   
          "'".$insert_ar[$z]["strasse"]."',"
                   
          "'".$insert_ar[$z]["plz"]."',"
                   
          "'".$insert_ar[$z]["ort"]."')";
          }

          if ( !
          ereg("(VALUES)$"$sql) )
          {
            
          $result mysql_query($sql);
            
          // ..

          Zuletzt geändert von reallife; 20.12.2005, 11:11.

          Kommentar

          Lädt...
          X