Mehrere Daten (variabel) in Tabelle einfügen

Hallo.

Ich habe eine SQL-Tabelle mit folgenden Spalten: id, jahr, album, bild und text.

Nun möchte ich folgendes Formular ausfüllen:

Jahr (Jahreszahl)
Album (Name)
Anzahl Bilder (Zahl)

Bei einem Klick auf den Sendebutton, soll er fortlaufend Einträge gemäß der Bildanzahl eintragen:

Eingabebeispiel:
Jahr (4)
Album (Testalbum)
Anzahl Bilder (5)

Die Daten sollen dann so in der Tabelle stehen:
id=50; jahr=4; album=Testalbum; bild=01; text= [leer]
id=51; jahr=4; album=Testalbum; bild=02; text= [leer]
id=52; jahr=4; album=Testalbum; bild=03; text= [leer]
id=53; jahr=4; album=Testalbum; bild=04; text= [leer]
id=54; jahr=4; album=Testalbum; bild=05; text= [leer]

Bei der nächsten Eingabe soll die Bildnummerierung wieder bei 01 beginnen.

Wie stelle ich das an, dass immer gemäß der eingegebenen Bildanzahl diese Spalte durchnummeriert wird?

Hi,

zum Verständnis: Du willst 1x das Formular ausfüllen und gem. deines Beispieles 5 Zeilen anlegen lassen, die sich dann nur in der ID (unerheblich, da hoffentlich eh auto_increment) und Bild-ID unterscheiden?

Genau, ich möchte 1x das Formular ausfüllen und es soll lediglich das Feld “bild” unterschiedlich ausgefüllt sein. Beginnend von 01 (2 Stellen) bis die Zahl die in der Dateneingabe steht. (Id ist wie du richtig genannt hast egal)

Dann sit das ganze relativ einfach

INSERT INTO tabelle (spalteA,spalteB,spalteC)
VALUES (foo,bar,eek), (foo,bar,eel), (foo,bar,eeo)

Damit würden bspw. 3 Datensätze hintereinander angelegt, die sich nur in spalteC unterscheiden :wink:

Und wie bekomme ich da mit nur einer Formulareingabe

a) die richtige Anzahl und
b) die fortlaufende Numerierung

hin?

Das musst du vorher im PHP zusammengebaut haben, am einfachsten mit einer Schleife.

Die richtige Anzahl lässt sich bspw. über eine FOR-Schleife handhaben.

Und die fortlaufende Nummerierung könntest du so realisieren:
Der erste Eintrag ist ja zwangsläufig $zahl=1 (die Vornull würde ich über strlen umsetzen)
Dann setzt du als zweiten Eintrag $zahl+1 und so fort…