繁体   English   中英

如何在PHP和MySQL中的特定行上获取ID

[英]How to get ID on a specific row in PHP and MySQL

PHP给我的错误

注意:未定义的索引:第6行的C:\\ xampp \\ htdocs \\ odieinventory \\ admin \\ add_sales.php中的product_id

这是我的查询

<?php 
  if (isset($_POST['addCart'])) {
    $product_id = $_POST['product_id'];
    $qtyBuy = $_POST['qtyBuy'];

    $addQuery = "INSERT INTO sales (product_id, quantity) VALUES ($product_id, $qtyBuy)";
    $execQuery = mysqli_query($connection, $addQuery);
  }
?>

这是我的桌子

<form action="add_sales.php" method="POST">
        <?php 

          $query = "SELECT * FROM products";
          $exec = mysqli_query($connection, $query);

          while ($row = mysqli_fetch_array($exec)) {
            $product_id = $row['product_id'];
            $product_name = $row['product_name'];
            $description = $row['description'];
            $product_quantity = $row['quantity'];
            $product_price = $row['sell_price'];

         ?>
            <tr>
                <td class="text-center"><?php echo $product_id; ?>
                  <input type="hidden" name="product_id" value="<?php echo $product_id; ?>">
                </td>
                <td><?php echo $product_name; ?></td>
                <td><?php echo $description; ?></td>
                <td><?php echo $product_price; ?></td>
                <td><?php echo $product_quantity; ?></td>

                <td><input type="number" min="1" max="999" name="qtyBuy"></td>
            </tr>
         <?php } ?>

        </tbody>
      </table>
      </div>
      <div class="form-group">

          <input type="submit" name="addCart" value="Add Items to Cart" class="btn btn-info pull-right">

      </div>
   </div>
</form>

我的订单页面

我也想寻求有关如何在购物车中插入记录的建议。 通过单击“将项目添加到购物车”,我只想通过购物车上的定量输入传递带有值的项目。 如何用PHP实现呢?

首先,绝对不要将用户输入( $_POST )直接放入SQL以避免SQL注入 -在mysqli上使用准备好的语句

对于表中的每种产品,最简单的方法是添加带有产品ID和数量字段的单独表格,并带有“添加到购物车”按钮。

在表文件table.php中,您必须:

1-打开tabletbody HTML标签

2-使您的html属性表单名称为数组(您有多个具有相同名称的输入),在这种情况下,您仅提交了最后一个product_id和最后一个qtyBuy输入值。

table.php

<form action="add_sales.php" method="POST">
       <div><table><tbody>
        <?php

          $query = "SELECT * FROM products";
          $exec = mysqli_query($connection, $query);
          while ($row = mysqli_fetch_array($exec)) {
            $product_id = $row['product_id'];
            $product_name = $row['product_name'];
            $description = $row['description'];
            $product_quantity = $row['quantity'];
            $product_price = $row['sell_price'];

         ?>
            <tr>
                <td class="text-center"><?php echo $product_id; ?>
                  <input type="hidden" name="product_id[]" value="<?php echo $product_id; ?>">
                </td>
                <td><?php echo $product_name; ?></td>
                <td><?php echo $description; ?></td>
                <td><?php echo $product_price; ?></td>
                <td><?php echo $product_quantity; ?></td>

                <td><input type="number" min="1" max="999" name="qtyBuy[]"></td>
            </tr>
            <?php } ?>

        </tbody>
      </table>
      </div>
      <div class="form-group">

          <input type="submit" name="addCart" value="Add Items to Cart" class="btn btn-info pull-right">

      </div>
</form>

在您的add_sales.php文件中,您必须循环$_POST['qtyBuy']变量,并检查每种产品的给定数量是否> 0

add_sales.php

<?php
   if (isset($_POST['addCart']) && $_POST['addCart']=="Add Items to Cart") {
     foreach($_POST['qtyBuy'] as $index=>$value){
       if($value > 0){
           $addQuery = "INSERT INTO sales (product_id, quantity) VALUES (".$_POST['product_id'][$index].", ".$value.")";
           $execQuery = mysqli_query($connection, $addQuery);
        }  
     }
  }
?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM