Публиковать данные из базы данных с формой обратно в базу данных PHP - PullRequest
0 голосов
/ 12 апреля 2019

Так что я должен сделать интернет-магазин. Это еще не работает: (

Я создал форму, в которой пользователи могут выбирать цвет своего продукта, емкость и количество, которое они хотят от них. Всю эту информацию я загрузил из базы данных в опции. (Первый блок кода) Теперь я хочу отправить выбранные параметры в базу данных (для заказа), но по некоторым причинам переменные являются пустыми. Поэтому мой вопрос заключается в том, как я могу проверить, какая опция выбрана и как отправить данные выбранной опции в базу данных.

Я попытался поместить код SQL в другой файл и изменить атрибут действия в форме этого файла. Я пробовал много разных вещей с оператором SQL, но я думаю, что это не проблема.

<p class="title">Choose your capacity</p>
<form action="bedankt.php" method="post" name="add_product_form">
  <select id="capacity">
    <?php foreach ($capacity as $value): ?>
    <option name="capacity"><?=$value; ?></option>
    <?php endforeach; ?>
  </select>
  <p class="title">Choose color</p>
  <select id="color">
    <?php foreach ($color as $colorvalue): ?>
    <option name="color"><?=$colorvalue; ?></option>
    <?php endforeach; ?>
  </select>
  <p class="title">Quantity</p>
  <select id="quantity">
    <?php for ($i=0; $i < $a + 1; $i++) : ?>
    <option name="quantity"><?=$i;?></option>
    <?php endfor; ?>
  </select>
  <hr>
  <input type="submit" value="Add to Cart" name="submit">Add to cart</button>
</form>

PHP

$capacitystring = $result['size'];
      $capacity = explode(', ', $capacitystring);

      $colorstring = $result['color'];
      $color = explode(', ', $colorstring);


      $i = 0;
      $a = $result['nr_available'];

      if(isset($_POST['submit']) && $_POST['quantity'] > 0) {

        $date = date('Y-m-d H:i:s');
        $product_quantity = $_POST['quantity'];

        $sql2 = "INSERT INTO aankopen(aankoopid, product_id, klantid, datum, hoeveelheid) VALUES (null, $productid, $user_id, '$date', '$product_quantity')";

        if (mysqli_query($conn, $sql2)) {
          header('Location: bedankt.php');
        } else {
            echo "Error: " . $sql2 . "<br>" . mysqli_error($conn);
        }

В результате я сделал переменные пустыми.

P.S. Если вы хотите поработать со мной над этим проектом, просто заведите меня в раздор! dylan_0575 # 6733

1 Ответ

2 голосов
/ 12 апреля 2019

Ваши теги <select> должны иметь name="" свойства, а теги <option> должны иметь value="" свойства.

Кроме того, ваш код уязвим для SQL-инъекций. Вам следует использовать PDO и подготовленные заявления.

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