我基本上有一个updatecart.php脚本,一旦点击HTML页面的提交按钮就将数据插入数据库表,然后转到display.php,显示更新的内容。我遇到的问题是我在显示的数据中有一个数量字段,如果用户点击提交按钮(将东西添加到购物车),那么我希望数量增加用户在下拉菜单中选择的数量在HTML页面中。现在,如果用户再次单击提交按钮,则不会发生任何事情,因为它是添加到数据库表中的相同数据。
代码:
HTML:
<form name = "AddToCart" action ="../updatecart.php" method='post'>
Quantity:
<select name="Quantity">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
<input type ="submit" name ="Add" value="Add To Cart"/>
</form>
updatecart.php:
<?php
// Connection to database omitted
$Quantity = $_POST['Quantity'];
$query = "INSERT INTO Cart VALUES
('1', 'The Fiqh of Dawah', '18.00', 'Books', '$Quantity')";
mysql_query($query);
header("location:displaycart.php");
?>
Display.php的:
//Not necessary to show this as it simply uses `echo` to create a table and display the whole table data with `SELECT * FROM Cart`
答案 0 :(得分:1)
首先执行SELECT
,然后选择INSERT
(如果购物车中此商品没有行)或{ {1}}(如果此商品已在购物车中)。
在MySql中,您也可以使用INSERT ... ON DUPLICATE KEY UPDATE
Syntax来完成。但是你需要有一把主键才能这样做。
答案 1 :(得分:0)
您可以使用isset($_POST['Add'])
检查提交的提交按钮
喜欢
if(isset($_POST['Add']))
{
$Quantity = $_POST['Quantity'];
$query = "INSERT INTO Cart VALUES
('1', 'The Fiqh of Dawah', '18.00', 'Books', '$Quantity')";
mysql_query($query);
header("location:displaycart.php");
}
答案 2 :(得分:0)
您可以检查顶部的updatecart.php,检查是否已点击提交。
像
这样的东西isset($_POST['Add']) {
// insert data into DB
}
else {
// redirect somewhere as they havent clicked Submit button
}
在输入数据库之前,您还应该通过检查/清理来运行用户数据。