0

我基本上有一个 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> &nbsp;&nbsp;&nbsp;
  <input type ="submit" name ="Add" value="Add To Cart"/>
  </form>

更新购物车.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");

?>

显示.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`
4

3 回答 3

1

您需要先检查该商品是否已存在于购物车中SELECT,然后在一个INSERT(如果购物车中不存在该商品的行)或一个UPDATE(如果该商品已经在购物车中)之间进行选择。

在 MySql 中,您也可以使用INSERT ... ON DUPLICATE KEY UPDATESyntax来完成。但是您需要有一个主键才能这样做。

于 2013-05-27T21:24:27.713 回答
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");
}
于 2013-05-27T21:18:13.063 回答
0

您可以检查顶部的 updatecart.php 以检查是否已单击提交。

就像是

isset($_POST['Add']) {
// insert data into DB
}
else {
// redirect somewhere as they havent clicked Submit button
}

在输入数据库之前,您还应该通过检查/清理来运行您的用户数据。

于 2013-05-27T21:19:00.847 回答