Как передать заранее неизвестные переменные input в БД через PHP?

Всем привет.

Есть вот такой код php:
<?php
    if(isset($_POST['name']) && isset($_POST['count']) && isset($_POST['volume'])){
      $name = $_POST['name'];
      $count = $_POST['count'];
      $volume = $_POST['volume'];
      

      $mysqli = new mysqli("localhost", "alexturt_list", "lostpassword", "alexturt_listShopping");
      $mysqli->set_charset("utf8");
      if (!$mysqli) {
        echo 'Не могу соединиться с БД. Код ошибки: ' . mysqli_connect_errno() . ', ошибка: ' . mysqli_connect_error();
        exit;
      }


      $result = $mysqli->query("INSERT INTO `listProducts` (name,count,volume) VALUES ('$name','$count','$volume')");

      if($result == true){
        echo "true";
      }else {
        echo "false";
      };
    
    }
    

    ?>


и есть такая форма в html:
<form class="form-inline" action="add.php" method="POST">
        <div class="form-group w-25 mx-auto">
          <input type="text" class="form-control" name="name" id="name" placeholder="Введи название продукта">
          <input type="text" class="form-control" name="count" id="count" placeholder="Количество">
          <select class="form-control" name="volume" id="volume">
            <option value="кг.">кг.</option>
            <option value="л.">л.</option>
            <option value="шт.">шт.</option>
          </select>
        </div>
        <button type="submit" class="btn btn-primary">Отправить</button>
      </form>

Данные из input добавляются как надо, всё супер...Но,
Если мне надо, допустим, через JS добавить блок нажатием на кнопку (её ещё нет в коде),
то как мне добавить переменные в php, чтобы он их корректно понимал и передал в БД информацию.
Например, второй блок будет иметь следующий вид:
<div class="form-group w-25 mx-auto">
          <input type="text" class="form-control" name="name1" id="name" placeholder="Введи название продукта">
          <input type="text" class="form-control" name="count1" id="count" placeholder="Количество">
          <select class="form-control" name="volume1" id="volume">
            <option value="кг.">кг.</option>
            <option value="л.">л.</option>
            <option value="шт.">шт.</option>
          </select>
        </div>

и если добавить в php код переменную name1 следующую за name, то передаётся в БД только последняя объявленная переменная.
Покопался в интернетах, ничего не нашёл, но может плохо искал...направьте Падавана на путь истинный..Пожалуйста.
  • Вопрос задан
  • 511 просмотров
Пригласить эксперта
Ответы на вопрос 2
Ahen
@Ahen
Универсальный дилетант
А как вы её объявляете то, вопрос составлен не корректно.
$name = $_POST["name1"];?
Если да, то... Ну вы не объявляете, а изменяете значение переменной $name.
Ответ написан
Создавайте поля с именами вида name[]. Так они придут на сервер в виде массива в $_POST['name'].

И у вас в коде открыта уязвимость с возможностью выполнения SQL-инъекций. Надо экранировать данные перед их добавлением в текст SQL-запроса.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы