Вставка нескольких значений из формы в массив - PullRequest
3 голосов
/ 24 января 2020

У меня есть форма с несколькими полями, как это:

<input type="text" name="name[]" value="">
<input type="text" name="name[]" value="">
<input type="text" name="name[]" value="">

Я пытаюсь вставить отправить эту форму и эти значения в массив в базе данных:

<?php 

$i = 0;
foreach ($_POST as $val) {
    $name = $_POST['name'][$i];

    mysqli_query("INSERT INTO main (name) VALUES ('$name')");
    $i++;
  } 
?>

Это сообщая мне об ошибке "mysqli_query () ожидает как минимум 2 параметра, 1 заданных"

Я также пытался заменить запрос на:

mysqli_query($connect, "UPDATE main
SET name='$name'
WHERE id=2");

Но я думаю, что на самом деле не публикуется 3 значения имя для массива. Вместо этого он публикует только один.

Я пытался использовать несколько кодов, которые я нашел на этом сайте, но я все еще не могу понять это!

Ответы [ 2 ]

1 голос
/ 24 января 2020

Вы перебираете $_POST, в этом нет необходимости, попробуйте перебрать $_POST['name'], например:

Если файл, отображающий форму, является тем же, который получает сообщение, которое вы должны сначала проверьте сообщение было сделано перед попыткой l oop до 'name'.

if(array_key_exists('name', $_POST){
  foreach($_POST['name'] as $name){
    mysqli_query($connect, "INSERT INTO main (name) VALUES 
  ('$name')");
  }
}
0 голосов
/ 24 января 2020

Попробуйте с этим:

mysqli_query($connect, "INSERT INTO main (name) VALUES ('".$name."')");

Здесь $connect - это подключение к вашей базе данных. вам нужно указать это соединение где-то ранее в вашем коде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...