bob der baumeister: Variabel viele INSERTs möglichst effizient machen - MySQL

Schönen guten Abend,

in einem Formular kann der Besucher X optionen angeben, die Anzahl ist Variabel. Er kann sagen ich möchte 10 Sachen eintragen (dann erscheinen 10 Felder) oder er kann sagen das er 50 Sachen eintragen möchte(dann erscheinen 50 Felder).

Das bedeutet es wären am Ende X Inserts.
Wenn 50 Leute gerade das Formular benutzen und jeder 10 Sachen einträgt dann sind das 500 Inserts. Kann ich das nicht irgendwie reduzieren?
Bisher funktioniert das per for-Schleife.

Ich hätte am liebsten die Eintragung aller Felder in einem Query.

Nächste Frage, wie kann ich in verschiedene Tabellen eintragen mit einem Query?

Geht das so:?

  
INSERT INTO table1(x,y), table2(i,j) VALUES ('1','2'), ('3','4')

?

Grüße: Bob!

  1. Hello,

    Kann ich das nicht irgendwie reduzieren?

    Bisher funktioniert das per for-Schleife.

    Per Schleife hat es nur Sinn, wenn auch der Erfolg jedes Statement überprüft wird und die fehlerhaften Inserts irgendwie wieder beim Client landen zur Nachbearbeitung.

    Wenn es Dir egal ist, welche Inserts geklappt haben, dann kannst Du auch ein Multinsert benuzten.

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

    --
    Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
  2. Hallo Bob,

    ... Kann ich das nicht irgendwie reduzieren?

    soweit mir bekannt, ist dies die effizienteste Methode:

    INSERT INTO table(x,y), VALUES ('1','2'), ('3','4')

    Nächste Frage, wie kann ich in verschiedene Tabellen eintragen mit einem Query?

    Das geht nur, wenn du mehrere Inserts per Semikolon trennst.

    Gruß Alexander.

  3. effizient -> wenn du mit PHP arbeitest, guck dir das mal an:
    http://de.php.net/PDO