我的“购物车”中包含物品编号,如何显示产品名称?

时间:2013-03-21 13:24:29

标签: php sql database

我在这里学习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()提供的参数无效

我可能做错了什么?

感谢

1 个答案:

答案 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>";
}