2016-11-08 38 views
-1

PHPで新しいです。私はWebストアを作成しています。カート内の商品の値をセッションに渡したいと思います。チェックアウトページにセッションの値が表示されます。私を助けてください。コードをheres。セッションに複数の値を格納

$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; 

      } 
+0

申し訳ありません。エラーはありません。唯一の問題は、新しい値を追加しているときに、$ productname []の最後の値を書き直すことだけです。あなたの答えはよかったです。 – Jmie

答えて

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などの他のすべての変数は、ループを通るたびに上書きされているので、ループが実行されたとき、彼らはただ、最後の行の値が含まれています。なぜあなたがそれらを設定しているのか分かりませんが、あなたが示していないループを使用しているコードがない限り。

+0

おめでとうございます。 – Jmie

関連する問題