使用表单将数据从数据库发布回数据库PHP

时间:2019-04-12 15:25:54

标签: php html sql e-commerce

所以我必须做一个网上商店。 Is还不能真正工作:(

我制作了一个表格,用户可以在其中选择他们想要的产品颜色,容量和数量。我从数据库加载到选项中的所有这些信息。(第一个块代码) 现在,我要将选定的选项发送到数据库(用于订单),但是由于某些原因,变量为空。 因此,我的问题是如何检查所选的选项以及如何将所选选项的数据发送到数据库。

我试图将SQL代码放在另一个文件中,并以该文件的形式更改为action属性。 我用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 个答案:

答案 0 :(得分:2)

您的<select>标签需要name=""属性,而<option>标签应该具有value=""属性。

顺便说一句,您的代码容易受到SQL注入的攻击。您应该研究使用PDO和准备好的语句。