Du gör en foreach på $_POST
snarare än på namn-/åldersarrayerna. Du bör göra foreach på namn eller åldersgrupp så här:
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')");
}
}
Jag skulle också notera att du för närvarande är mottaglig för SQL-injektion så jag lade till steget att undkomma dina strängar för namn/ålder.
Jag skulle också starkt föreslå att helt enkelt göra en enstaka bulkinfogning i DB istället för en insättning av varje post individuellt (jag lämnar det upp till dig att implementera). Detta tillvägagångssätt är nästan alltid att föredra ur prestationssynpunkt.
Slutligen borde du VERKLIGEN inte använda mysql_*
fungerar när de är utfasade. Överväg att byta till mysqli eller PDO.