如果用户从表单中选择多个选项,则PHP插入多个记录

时间:2016-03-31 17:24:40

标签: php mysql pdo

我知道这可能超出了本课的范围,但我真的需要帮助。我的网站上有一个表单供用户填写,数据库保存到MySQL数据库表中。但是,当用户从表单中的“选择”字段中选择多个选项时,我希望能够选择多行。请帮助我。我在这里死了。

<h3>Create Order</h3>
<form action="" method="post">
<p>Product: <input type="text" name="product_id" value=""><p>

<p>Quantity:  <input type="text" name="quantity" value=""></p>

<p>Category: <select name="category" multiple>
<option value="1">Business Card</option>
<option value="2">Flyer</option>
<option value="3">Brochure</option>
</select></p>

</form>


Insert into `orders` (product_id, quantity, category_id) Value (product_id, quantity, category_id)

如果用户选择多个类别,我希望将订单保存为单个订单。我希望这能更好地解释。

2 个答案:

答案 0 :(得分:0)

  

这不是一个完整的解决方案,只是一些提示可以帮助您实现   任务

您需要一些处理用户输入并将其存储在数据库中的代码,因为您有一个空表单操作(action=""),相同的脚本将用作表单提交的目标,因此您如果帖子字段中存在一些数据,则需要一些评估为true的条件(因为您的表单提交类型是帖子method="post"

您的脚本中应该包含以下代码段:

<?php
if(isset($_POST['product_id'])) {
    $product_id = $_POST['product_id'];
    $quantity = $_POST['quantity'];
    $categories = $_POST['category'];
    // note that $category is an array because the attribute 'multiple' is used
    // you can loop through all selected categories and construct your query
    foreach($categories  as $category) {
       // construct your query here
    }
}

?>

<h3>Create Order</h3>
<form action="" method="post"> 
...

答案 1 :(得分:0)

谢谢@Abdo,我让它与之合作。

<?php
  if(isset($_POST['product_id'])) {
     $product_id = $_POST['product_id'];
     $quantity = $_POST['quantity'];
     $category = $_POST['category'];
     // note that $category is an array because the attribute 'multiple' is used
     // you can loop through all selected categories and construct your query
    for ($i=0; $i<sizeof($category);$i++) {
      // construct your query here
    }
  }

?>

<h3>Create Order</h3>
<form action="" method="post">