[英]PHP Mysql New Row Inserted into database table every time i refresh the page
我正在创建一个带有购物车的网站,我设法成功地将商品添加到购物篮中,但是我希望同时将商品中的购物篮插入数据库中的orders表中,这可以正常工作,但是每次刷新页面或四处移动时在不同页面中,不断插入当前已取入的相同项目。
我允许用户从购物篮中删除项目,但我又想在数据库表中进行同样的操作。
这是我的代码,请对其进行分析并指出解决方案THX。
cart.php:
if (isset($_GET['add'])){
$quantity = mysql_query('SELECT product_id, product_qua FROM products WHERE product_id='.$_GET['add']);
while($quantity_row = mysql_fetch_assoc($quantity)){
if($quantity_row['product_qua'] !=$_SESSION['cart_'.$_GET['add']]){
$_SESSION['cart_'.$_GET['add']]+='1';
}
}
}
if (isset($_GET['add'])){
$qq = mysql_query('SELECT * FROM users');
while($user_rows = mysql_fetch_assoc($qq)){
$grr = $_SESSION['username'];
if($user_rows['username'] == $grr){
$z = $user_rows['first_name'];
$zz = $user_rows['last_name'];
}
}
$q = mysql_query('SELECT product_name, product_qua, product_price from products WHERE product_id='.$_GET['add']);
while($prod_rows = mysql_fetch_assoc($q)){
$x = $prod_rows['product_name'];
$xx = $prod_rows['product_price'];
$xxx = $prod_rows['product_qua'];
$order = "INSERT INTO orders (order_user_first_name, order_user_last_name, order_product_name, order_product_price, order_product_quantity ) VALUES ('$z','$zz','$x','$xx','$xxx')";
mysql_query($order);
}
}
if(isset($_GET['remove'])){
$_SESSION['cart_'.$_GET['remove']]--;
}
上面的代码不是文件中的所有代码,而是负责我尝试实现的部分
问候
听起来您好像在URL中传递变量,并且在浏览网站时,这些变量仍在传递。 也许您应该在添加项目后执行重定向,这样它就不会维护vars吗?
这就是事情,您的代码完全按照您的要求执行。 您正在使用$ _GET ,而是将数据发布到数据库中。
我使用$ _GET的方式是当我需要选择数据或从服务器检索数据时。 当我需要将数据发布到服务器时,我使用$ _POST 。
解决您的问题的方法是拥有一个脚本,您可以将数据发布到该脚本中,然后进行重定向,以避免重新插入到Table中。
您应该尝试使用$ _POST而不是$ _GET吗?
使用$_GET
代替$_POST
。
解决您的问题的方法是拥有一个脚本,您可以将数据发布到该脚本中,然后进行重定向,以避免重新插入到Table中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.