我有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";
}
答案 0 :(得分:1)
您需要在查询中添加WHERE
子句。
$sql = "SELECT post_title, price, post_id FROM products WHERE `id` = '$product_id'";
目前,您的所有查询都是从数据库表中取出所有内容,然后选择第一行。
WHERE
子句将您的查询限制为只占用匹配产品的行,请注意您可能需要更改产品ID列的列名。
虽然是个人推荐,但不是在每个页面加载时从数据库中提取产品,假设没有人会在购物车中添加大量产品,只需将产品信息存储在购物车会话密钥中。 / p>