Je doet een foreach op $_POST
in plaats van op de naam/leeftijd-arrays. Je zou foreach op naam of leeftijdsgroep als volgt moeten doen:
if (
!empty($_POST['name']) && !empty($_POST['age']) &&
is_array($_POST['name']) && is_array($_POST['age']) &&
count($_POST['name']) === count($_POST['age'])
) {
$name_array = $_POST['name'];
$age_array = $_POST['age'];
for ($i = 0; $i < count($name_array); $i++) {
$name = mysql_real_escape_string($name_array[$i]);
$age = mysql_real_escape_string($age_array[$i]);
mysql_query("INSERT INTO users (name, age) VALUES ('$name', '$age')");
}
}
Ik merk ook op dat je momenteel vatbaar bent voor SQL-injectie, dus ik heb de stap toegevoegd om je strings voor naam/leeftijd te laten ontsnappen.
Ik zou ook ten zeerste aanbevelen om eenvoudig een enkele bulk-insert in de DB te maken in plaats van een insert van elk record afzonderlijk (ik laat dat aan jou over om te implementeren). Deze benadering verdient bijna altijd de voorkeur vanuit het oogpunt van prestaties.
Ten slotte zou je ECHT geen mysql_*
moeten gebruiken functioneert zoals ze zijn verouderd. Overweeg over te stappen op mysqli of PDO.