在会话中存储多个值

时间:2016-11-08 00:35:09

标签: php mysql session

我是PHP新手。我正在创建一个网上商店。我想将购物车中产品的值传递给会话。会话的价值将显示在结帐页面中。请帮我。这是代码。

$i = 0;
        $sum = 0;
        foreach($_SESSION["cart_array"] as $each_product){
            $product_id = $each_product['productID'];
            $sql=mysql_query("select * from tblproduct where prod_id='$product_id'");
            while($row=mysql_fetch_array($sql)){
                $prodNo = $row["prod_no"];
                $prodID = $row["prod_id"];
                $prodName = $row["prod_name"];
                $prodPrice = $row["prod_price"];
                $prodQuan = $row["prod_quan"];
                $supp = $row["supplier"];
                $sum +=$row['prod_price'];
                $pricetotal=$prodPrice*$each_product['quantity'];
                $productname=array();
                $productname[] = $prodName;
                $_SESSION['name'] = $productname;

            }

1 个答案:

答案 0 :(得分:0)

您需要将$productname的初始化从循环中取出。并且您只需在循环完成时分配给会话变量。

        $productname=array();            
        while($row=mysql_fetch_array($sql)){
            $prodNo = $row["prod_no"];
            $prodID = $row["prod_id"];
            $prodName = $row["prod_name"];
            $prodPrice = $row["prod_price"];
            $prodQuan = $row["prod_quan"];
            $supp = $row["supplier"];
            $sum +=$row['prod_price'];
            $pricetotal=$prodPrice*$each_product['quantity'];
            $productname[] = $prodName;
        }
        $_SESSION['name'] = $productname;

每次通过循环都会覆盖所有其他变量,如$prodNo$prodID,因此当循环完成时,它们只包含最后一行的值。我不确定你为什么设置它们,除非你在循环中使用了你没有显示的代码。