Mysql
 sql >> база данни >  >> RDS >> Mysql

вмъкнете множество полета с помощта на цикъл foreach

Правите foreach на $_POST а не върху масивите име/възраст. Трябва да правите foreach за масив от име или възраст по следния начин:

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

Също така бих отметил, че в момента сте податливи на SQL инжекция, така че добавих стъпката за избягване на низовете ви за име/възраст.

Също така силно бих препоръчал просто да направите едно групово вмъкване в DB вместо вмъкване на всеки запис поотделно (ще оставя това на вас да приложите). Този подход почти винаги е за предпочитане от гледна точка на производителността.

И накрая, НАИСТИНА не трябва да използвате mysql_* функции, тъй като са остарели. Помислете за промяна на mysqli или PDO.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да броим артикули по категория?

  2. PHP:Ако съществува запис, показва HTML, в противен случай не показва нищо

  3. Има ли алтернатива на TOP в MySQL?

  4. Не може да се свърже с mysql от visual studio 2015

  5. Структура на базата данни, включваща динамични полета