如何判断产品是否存在,如果是+数字值

时间:2012-01-30 18:51:07

标签: php shopping-cart

我正在寻找有关我的购物车的一些帮助。我使用一个简单的脚本。一切都按照我的意愿运作,但我不知道如何找出某些产品是否已经存在,如果他们这样做我想增加价值。脚本如下:

for ($x=0;$x<count( $_SESSION["sess_name"]);$x++) {
    $x_id= $_SESSION["sess_id"];
    $x_name_prd= $_SESSION["sess_name_prd"];
    $x_number_prd= $_SESSION["sess_number_prd"];

   //if there is a product that is already in the cart then go to function check_me(); to do something to make the sess_number_prd +1 everytimes people click on the button.
    if ( $x_name_prd[$x]==$name_prd){
        check_me($x_name_prd[$x]);
    }
}

我尝试过此方法,但无效

function check_me ($name_prd)  {
    for ($i=0;$i<count($_SESSION['sess_name']);$i++) {
        if (!in_array($_SESSION['sess_id'][$i],$)) {
            $temp_id[]=$_SESSION['sess_id'][$i];
            $temp_name[]=$_SESSION['sess_name_prd'][$i];

            $temp_num[]=+1;
        }
    }
    $_SESSION['sess_id']=$temp_id;
    $_SESSION['number_prd']=+1;
    $_SESSION['sess_name']=$temp_name;
} 

请有人帮帮我..

1 个答案:

答案 0 :(得分:0)

如果你对你的购物篮中$ _SESSION存储的数组结构有一些控制权,我建议使用类似的东西。

/*Entry point
  It is assumed at this point you have the value product id ($pid) and initiated 
  your $_SEESION[<basket array index>] set - "basket" in this example
*/
(isset($_SESSION['basket'][$pid]))? $_SESSSION['basket'][$pid]++ : $_SESSION['basket'][$pid] = 1;

这种方法不需要对篮子中的每个项目进行迭代比较,以确定它的实例是否已经添加到篮子中。这将允许一个简单的

foreach($_SESSION['basket'] as $product_id => $noOfProduct){
     /*Do your checkout thing here*/
}

在您完成添加后处理篮子。

代码发布在Alex的评论中,问题的例子不是解决方案

for ($x=0;$x<count( $_SESSION["sess_id"]);$x++){
    $x_id= $_SESSION["sess_id"][$x];    //[$x] appended, presumed missing
    $x_id_prd= $_SESSION["sess_id_prd"];
    $x_name_prd= $_SESSION["sess_name"]; 
    $x_size_prd= $_SESSION["sess_size"]; 
    $x_color_prd= $_SESSION["sess_color"];
    $x_clr_code_prd= $_SESSION["sess_clr_code"]; 
    $x_num_prd= $_SESSION["sess_num"]; 
    if($x_id_prd[$x]==$id_prd 
      && $x_size_prd[$x]==$size_prd 
      && $x_color_prd[$x]==$color_prd 
      && $x_clr_code_prd[$x]==$clr_code ){ 
        //do something to get $_SESSION["sess_num"]+1;
    } 
}

评论代码结束