我在这里学习php并且有一个基本的购物车功能,它显示我选择时在购物车中的项目,但它只显示'productid'的值,这是一个4位数字,即'0001'
我希望它也显示项目描述,我的代码是
<?php
session_start();
$cart=$_SESSION["cart"];
extract($_POST);
if (IsSet($productid)||IsSet($_SESSION["notempty"])) $empty=false;
else $empty=true;
if (!$empty)
{
if (IsSet($cart[$productid])) $cart[$productid]+=$quantity;
else $cart[$productid]=$quantity;
$_SESSION["notempty"]=true;
}
$_SESSION["cart"]=$cart;
?>
产品也存储在数据库中,我需要从数据库中调用相同的ID吗?
感谢
好的,这就是我现在所拥有的
<?php
$con=mysqli_connect({dbhost},{dbusername},{dbpassword},{dbname});
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con,"SELECT name, price FROM products = ".$var." WHERE productid = ".$i) ;
while($row = mysqli_fetch_array($result))
{
echo $row['name'];
echo $row['price'];
echo "<br>";
}
?>
但我在
上收到错误警告:mysqli_fetch_array()要求参数1为mysqli_result,第12行的... / cart.php中给出布尔值
和
警告:第54行的... / cart.php中为foreach()提供的参数无效
我可能做错了什么?
感谢
答案 0 :(得分:0)
您需要在POST方法中传递产品名称和产品ID,或者您需要在产品ID存在时运行SQL查询并返回产品名称,其中数据库表中的产品ID等于产品你的购物车中有id。
可以使用类似于以下查询的内容。
SELECT {product_name} FROM {product_table} WHERE id={product_id} LIMIT 1;
更新了代码示例:
$con = mysqli_connect({dbhost},{dbusername},{dbpassword},{dbname});
// Check connection
if(mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con, "SELECT name, price FROM products WHERE productid = $i;") ;
while($row = mysqli_fetch_array($result)) {
echo $row['name'];
echo $row['price'];
echo "<br>";
}