sql >> Databáze >  >> RDS >> Mysql

vložte více polí pomocí smyčky foreach

Provádíte foreach na $_POST spíše než na poli jméno/věk. Foreach byste měli provádět v poli jména nebo věku takto:

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

Chtěl bych také poznamenat, že jste v současné době náchylní k SQL injection, takže jsem přidal krok escapování vašich řetězců pro jméno/věk.

Velmi bych také navrhoval jednoduše vytvořit jednu hromadnou vložku do DB namísto vložení každého záznamu jednotlivě (implementaci nechám na vás). Tento přístup je téměř vždy výhodnější z hlediska výkonu.

A konečně, OPRAVDU byste neměli používat mysql_* fungují tak, jak jsou zastaralé. Zvažte změnu na mysqli nebo PDO.



  1. Rails na OSX 10.11 El Capitan:Knihovna nenačtena:libmysqlclient.18.dylib

  2. Odhadovaný počet řádků ke čtení

  3. Příklady JSON_VALUE() v SQL Server (T-SQL)

  4. Jednoduchá mysql otázka týkající se primárních klíčů a vložky