<?php
session_start();                 //初始化
session_register('products');
$num=1;                         
$re_str='';$_SESSION['count']+=$num;         //增加1
if(!empty($_GET['id']))          //保存物品id
{
   $arr[$_SESSION['count']]=$_GET['id'];
}
$_SESSION['products']=$arr;//下面是测试,拿出保存的ID,为什么出错? 如果不指保存ID 还保存名称,价格怎么办?
foreach($_SESSION['products'] as $v)
{   
$re_str.= $v.'/ ';

}echo '一共有'.$_SEESSION['count'].' 它们分别是:'.$re_str;
?>

解决方案 »

  1.   

    那用多维数组给$_SESSION['count']定义初始值吧$_SESSION['count']=0还有把$_SESSION['count']+=$num; 放foreach后面去
      

  2.   

    我也是搞这个购物车的,我用的一段代码,希望对LZ有点帮助...if( empty( $_SESSION['mycookie'] ) )    // $_SESSION['mycookie'] 用来存储用户下单信息的
    {
        $_SESSION['mycookie'] = array();
    } $i = count( $_SESSION['mycookie'] );if( empty( $i ) )
    {
        $i = 1;
    }if( !array_key_exists( $i - 1, $_SESSION['mycookie'] ) ) //在用户下单页面,先判断是否已经有下单,有单的话,$_SESSION['mycookie'] 就增加..
    {
        $_SESSION['mycookie'][ $i - 1 ] = $cookie;     
    }
    else
    {
        $_SESSION['mycookie'][ $i ] = $cookie;
    }
      

  3.   

    取的话,就和LZ的一样$i = count( $_SESSION['mycookie'] );foreach( $_SESSION['mycookie'] as $v )
    {   
        $re_str.= $v.' /  ';
        
    }echo '一共有'.$i.' 它们分别是:'.$re_str;
      

  4.   

    帮你优化一下,你的问题没有对$arr赋值,毕竟这个数组是在要累积的.
    <?php
    session_start();                 //初始化
    session_register('products');                        
    $re_str='';
    if(!isset($_SESSION['count']))
    {
      $_SESSION['count'] = 0;
    }if(isset($_SESSSION['product']))
    {
      $arr  = $_SESSION['product'];
    }$_SESSION['count'] += 1;         //增加1if(!empty($_GET['id']))          //保存物品id
    {
      $arr[$_SESSION['count']]=$_GET['id'];
    }
    $_SESSION['products']=$arr;//下面是测试,拿出保存的ID,为什么出错? 如果不指保存ID 还保存名称,价格怎么办?
    foreach($arr as $v)
    {   
        $re_str.= $v.'/ ';
        
    }
    echo '一共有'.$_SEESSION['count'].' 它们分别是:'.$re_str;
    ?>
      

  5.   

    但我觉得下单的数量($_SEESSION['count'])不需要再用一个session保存直接计数$_SESSSION['product']的数量就可以了..
      

  6.   

    查了下书后,换一种算法,用  货品id => 数量 来保存 
    但不知那里错了,从session里读出来的$key会在前面自增一个数字,高手帮看
    /*-----------------------------添加货品 代码-------------------------*/
    session_start();
    $id=$_GET['id'];
    if($id)
    {
    if(!isset($_SESSION['cart']))        //初始化
    {
    $_SESSION['cart']  = array();
    $_SESSION['items'] = 0;
    }
    if(isset($_SESSION['cart'][$id]))    //增加一
    {
    $_SESSION['cart'][$id]++;
    }
    else
    {
    $_SESSION['cart'][$id]=1;
    } $_SESSION['items'] = array_sum($_SESSION['cart']);  //总数
    }
    echo  '现数量为:'.$_SESSION['items']; /*-----------------------------显示货品 代码-------------------------*/if($_SESSION['cart']&&array_count_values($_SESSION['cart']))
    {
    $re_str='';
    foreach($_SESSION['cart'] as $k => $v)
    {
    $re_str.=$k.'  数量为: '.$v.'<br />';
    }
    echo $re_str;
    }
      

  7.   

    7楼得到的结果是  80是货品的id,每点一次相同的$_SESSION['cart'][$id]会增加一,但不知为什么在前面自增了一个数 080 数量为: 1
    180 数量为: 1
    280 数量为: 1
    380 数量为: 1
    480 数量为: 1
    580 数量为: 1
    680 数量为: 1
    780 数量为: 1
    880 数量为: 1
    980 数量为: 1
    1080 数量为: 1
    1180 数量为: 1
    1280 数量为: 1
    1380 数量为: 1
    1480 数量为: 1
    1580 数量为: 1
    1680 数量为: 1
    1780 数量为: 1
    1880 数量为: 1
    1980 数量为: 1
    2080 数量为: 1
    2180 数量为: 1