Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
购物车没有使用会话更新php_Php_Html_Session_Shopping Cart - Fatal编程技术网

购物车没有使用会话更新php

购物车没有使用会话更新php,php,html,session,shopping-cart,Php,Html,Session,Shopping Cart,我做了一个简单的购物车,我的问题是当我想更新单个产品的数量。我使用post方法来做这件事。当我在正确的项目上添加数量并单击更新时,它会成功地进行更新,但任何其他产品的数量也会更新。请帮忙 <?php if(isset($_POST['Update'])) { if(isset($_POST['prod_id'])) { $myid = $_POST['prod_id']; if (in_array($myid,$_SESSION['cart']))

我做了一个简单的购物车,我的问题是当我想更新单个产品的数量。我使用post方法来做这件事。当我在正确的项目上添加数量并单击更新时,它会成功地进行更新,但任何其他产品的数量也会更新。请帮忙

<?php

if(isset($_POST['Update']))
{
     if(isset($_POST['prod_id']))
     {
     $myid = $_POST['prod_id'];
     if (in_array($myid,$_SESSION['cart'])) 
    {
     $key = array_search($myid, $_SESSION['cart']);
     $value_qty = "qtyval".$key;
     $_SESSION[$key] = $_POST[$value_qty];
     $message=$_SESSION[$key];
     echo '<script>alert("'.$message.'")</script>';
     }
  } 
}
?>
<?php
foreach ($_SESSION['cart'] as $key_value => $listitem)
{
$sql="SELECT * FROM products where id = '$listitem'";
$result_set = $database->query($sql);
while ($row=$database->fetch_array($result_set)){
?>


<div class="basket_block" id="basket_block">
  <div class="item_block_remove" id="item_block_remove"><a href="basket.php?remove=<?php echo $key_value; ?>">Remove</a></div>
  <div class="item_block" id="item_block">Name: <?php echo $row['Title_of_Message']; ?><br />
        Description <?php echo $row['Description']; ?> 
    </div>
  <div class="item_qty" id="item_qty"><form action="" method="POST" enctype="multipart/form-data" name="frmqty">

  <input type="text" name="<?php echo (string)'qtyval'.$key_value; ?>" size="3" style="border-radius: 15px;text-align: center;" value="<?php 
  if(isset($_POST['Update']))
  {
    echo $_SESSION[$key];
  } 
  else
  {
    echo $_SESSION[$key] = 1;
  }

  ?>" />
  <input type="hidden" name="prod_id" id="prod_id" value="<?php echo $row['id']; ?>" />

 <input type="submit" value="Update" name="Update" style="border:none;cursor:pointer;padding-top:10px; background-color:transparent;" />

  </form></div>

会话是否开始;已加载并在使用会话的所有页面内加载?是的。这就是为什么它能够在会话['cart']中携带数组值的原因。你真的应该重新考虑你的购物车布局。为什么不仅仅是$\u会话['cart'][$productID]=$quantity?这将为您节省所有无意义的数组搜索甚至更深入,对于每个productID,您应该有一个子数组,其中包含以下信息:$\u会话['cart'][$productID]['name'],$\u会话['cart'][$productID]['unit\u price'],$\u会话['cart']['description'],$\u会话['cart'][$productID]['weight'],$\会话['cart'][$productID]['quantity']。会使代码变得非常简单。。。