@lesmanora

Как сделать запрос PHP на добавление массива в MySQL?

На сайте есть табличка, которая будет обновляться и записываться динамически с панели администратора.
Код добавления выглядит так:

<div id="dynamic-form" class="dynamic-form">
<a href="#dynamic-form" id="add">Добавить</a> 
<a href="#dynamic-form" id="remove">Удалить</a> 
<a href="#dynamic-form" id="reset">Сбросить</a>
<br><br><br>
<div class="inputs">
<div>
<label class="stylelabel" >Наименование товара</label>	
<input type="text" name="tovar[]" class="field" value="Наименование товара" style="width: 78%;">
<input type="text" name="many[]" class="field" value="Цена" style="width: 20%;"><br></div>
</div></div>


Обработчик:

if (empty($_POST["tovar"])) {
		  include("actions/upload-tovar.php");
		  unset($_POST["tovar"]);
	  }
	  if (empty($_POST["many"])) {
		  include("actions/upload-tovar.php");
		  unset($_POST["many"]);
	  }


Сам запрос:

$link = mysqli_connect($db_host, $db_user, $db_password, $db_database)
or die("Ошибка " . mysqli_error($link));

if ($_POST['tovar']['many'][0]) {

	for ($i = 0; $i < count($_POST['tovar']['many']); $i++) {

		if ($_POST['tovar']['many'][$i]) {

			$tovar = $_POST['tovar'][$i];
			$many = $_POST['many'][$i];


				if ($_POST['tovar']['many'][$i]) {

					mysqli_query($link,"INSERT INTO tovar(products_id,tovar,many)
						VALUES(
                            '".$id."',
							'".$tovar."',
							'".$many."'
						)");

				} else {
					$_SESSION['answer'] = "Ошибка";
				}
			}
	}
}


Суть в том, что есть база под названием категория и есть база под названием товары. Добавляются одноврменно с одной страницы. Товары подтягиваются к таблице категории по значению products_id.

В общем код выше не работает. Почему?
  • Вопрос задан
  • 232 просмотра
Пригласить эксперта
Ответы на вопрос 1
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Потому что массивы $_POST['tovar'] и $_POST['many'] существуют (они передаются из формы), а вот массив $_POST['tovar']['many'] не существует, совсем.

Должно быть:
$link = mysqli_connect($db_host, $db_user, $db_password, $db_database) or die("Ошибка:" . mysqli_error($link));

foreach ($_POST['tovar'] as $i => $tovar) {
  if (!empty($tovar) AND !empty($_POST['many'][$i])) {
    $many = $_POST['many'][$i];
    mysqli_query($link,"INSERT INTO tovar(products_id,tovar,many)
            VALUES(
                            '".mysqli_real_escape_string($link, $id)."',
              '".mysqli_real_escape_string($link, $tovar)."',
              '".mysqli_real_escape_string($link, $many)."'
            )") or die("Ошибка: ".mysqli_error($link));
  } else {
    $_SESSION['answer'] = "Ошибка";
  }
}


И ещё, $id появляется из ниоткуда, да?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽