Ich habe ein Formular, das für die Duplizierung von Feldern ermöglicht. Das Formular wird über PHP gepostet und in eine Datenbank eingefügt. Mein Problem ist, dass ich das Array nicht korrekt durchlaufen kann. Richte ich das Formular korrekt ein (sind die name
richtig formatiert) und bin ich die Arrays richtig durchlaufen? Es ist mir nicht gelungen, Daten einzufügen.PHP Mysql einfügen assoziative Array in die Datenbank von einem "dynamischen" Formular
Der Trick ist, dass die doppelten Felder zusammenhalten müssen.
Denken Sie an die Felder als Sätze von Fragen und Antworten.
Jede Frage hat einen Titel, den Fragetext und eine Dateieingabe.
Jede Antwort hat einen Titel, den Antworttext eine Dateieingabe und ein Kontrollkästchen, um die richtige Antwort zu notieren.
Ich habe die name
ist wie so ein:
name='question[1][title]'
name='question[1][text]'
name='question[1][file]'
answer[1][title][]
answer[1][text][]
answer[1][file][]
answer[1][correct][]
Die php das Formular einzufügen ist wie folgt:
$insert_question = $db->prepare(
'insert into questions (title, text) values (?, ?)');
$insert_answer = $db->prepare(
'insert into answers (question_id, title, text, correct)'.
' values (?, ?, ?, ?)');
foreach ($_POST['question'] as $q_num => $q)
{
$insert_question->execute(array($q['title'], $q['text']));
$q_id = $db->lastInsertId();
//********************
// insert files
//********************
foreach ($_POST['answer'][$q_num] as $a)
{
$insert_answer->execute(
array($q_id, $a['title'], $a['text'], $a['correct']));
}
}
Sorry, dass dies eine so große Frage. Ich arbeite seit zwei Tagen daran und habe keine Ideen mehr.
danke für deine antwort, ich brauche leider die dateneingabe unabhängig von leeren titelfeldern. – superUntitled
Haben Sie die Lösung getestet? Egal, ob der Titel leer ist, während das Textfeld existiert. –
Das funktioniert! 'für ($ i = 0; $ i <10; ++ $ i) {echo" danke ";}' – superUntitled