Robisz foreach na $_POST
zamiast na tablicach nazwisko/wiek. Powinieneś wykonać foreach na tablicy nazw lub wieku w ten sposób:
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')");
}
}
Chciałbym również zauważyć, że jesteś obecnie podatny na wstrzyknięcie SQL, więc dodałem krok ucieczki ciągów dla nazwy / wieku.
Sugerowałbym również, aby po prostu zrobić pojedynczą wstawkę zbiorczą do bazy danych zamiast wstawiania każdego rekordu osobno (wdrożenie tego pozostawiam tobie). Takie podejście jest prawie zawsze preferowane z punktu widzenia wydajności.
Wreszcie, NAPRAWDĘ nie powinieneś używać mysql_*
działają, ponieważ są przestarzałe. Rozważ zmianę na mysqli lub PDO.