0

我在这里学习 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,布尔值在 .../cart.php 第 12 行给出

警告:在第 54 行的 .../cart.php 中为 foreach() 提供了无效参数

我可能做错了什么?

谢谢

4

1 回答 1

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>";
}
于 2013-03-21T14:19:09.757 回答