如何在PHP和MySQL中获取特定行的ID
PHP给我的错误是 注意:第6行C:\xampp\htdocs\odieinventory\admin\add\u sales.php中未定义的索引:product\u id 这是我的问题如何在PHP和MySQL中获取特定行的ID,php,html,Php,Html,PHP给我的错误是 注意:第6行C:\xampp\htdocs\odieinventory\admin\add\u sales.php中未定义的索引:product\u id 这是我的问题 <?php if (isset($_POST['addCart'])) { $product_id = $_POST['product_id']; $qtyBuy = $_POST['qtyBuy']; $addQuery = "INSERT INTO sales (pr
<?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>
首先,您不应该将用户输入($\u POST
)直接放入SQL,以避免与mysqli一起使用
最简单的方法是为表中的每个产品添加一个单独的表单,其中包含产品ID和数量字段以及“添加到购物车”按钮。在表文件table.php中,您必须:
1-打开表
和tbody
HTML标记
2-将您的html属性表单名称设置为数组(您有多个同名输入),在您的情况下,您只需提交最后一个产品id
和最后一个qtyBuy
输入值
table.php
如果检查隐藏元素,您是否确实在值中看到id?对于多行,可能存在重复,您将在每次迭代中对表单数据产品\u id
进行重击。它只会提交最后一个,我不能更新你的帖子,因为我是新来的。我也是PHP新手。不管怎样,你有任何链接可以在哪里学习foreach吗?我还看到了关于使用会话的教程。谢谢。您好,不客气。您可以在这里看一下:我将阅读您提供的链接。你在单独的表格上是什么意思?你能进一步解释一下吗?好的,你需要在每行上迭代,在每一个
中,你会有一个
用于每个产品。这不是一个完美的解决方案,而是一个非常简单的解决方案。
<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>
<?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);
}
}
}
?>