0

我有php的问题

我正在建立一个电子商务网站(uni 课程),我正在创建添加到购物篮部分。

我可以将产品添加到购物篮(显示标题、价格、ID 和数量),但是,无论我添加到购物篮中的任何产品,它总是显示数据库中第一个产品的标题、价格和 ID。

(例如我可以向数据库中添加 2 个项目,它们都将具有数据库中第一个项目的标题)

(下面的篮子中显示产品的代码)谢谢

if(isset($_SESSION['cart']) && count($_SESSION['cart']) > 0){ 
    foreach($_SESSION['cart'] as $product_id => $qty){

        $sql = "SELECT  post_title, price, post_id FROM products"; 
            $result = mysql_query($sql);

            if(mysql_num_rows($result) > 0) {
            list($name, $price, $id) = mysql_fetch_row($result);

                echo "ID " . $product_id . " " . $name ." " . "Price : " . $price . " DB ID " . $id ." Quantity = " . $qty . "<br/>";
            }
    }

echo "<td colspan=\"3\" align=\"right\"><a href=\"$_SERVER[PHP_SELF]?empty\" onclick=\"return confirm('Are you sure?');\">Empty Cart</a></td>";

}else{

echo "0";
}
4

1 回答 1

1

您需要在WHERE查询中添加一个子句。

$sql = "SELECT  post_title, price, post_id FROM products WHERE `id` = '$product_id'"; 

目前,您所做的所有查询都是从数据库表中取出所有内容,然后选择第一行。

WHERE子句将您的查询限制为仅获取匹配产品的行,请注意,您可能需要更改产品 id 列的列名。

虽然是个人建议,但不是在每次页面加载时从数据库中获取产品,假设没有人将大量产品添加到您的购物车中,只需将产品信息也存储在购物车会话密钥中。

于 2013-04-14T22:22:55.000 回答