Mysql
 sql >> Database >  >> RDS >> Mysql

inserisci più campi usando foreach loop

Stai facendo una ricerca su $_POST piuttosto che sugli array nome/età. Dovresti fare foreach sul nome o sulla matrice di età in questo modo:

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')");
    } 
}

Vorrei anche notare che al momento sei suscettibile all'iniezione di SQL, quindi ho aggiunto il passaggio dell'escape delle tue stringhe per nome/età.

Suggerirei inoltre vivamente di creare un singolo inserimento di massa nel DB invece di un inserimento di ciascun record individualmente (lascerò a te l'implementazione). Questo approccio è quasi sempre preferibile dal punto di vista delle prestazioni.

Infine, DAVVERO non dovresti usare mysql_* funzioni in quanto obsolete. Considera l'idea di passare a mysqli o PDO.