как узнать, существует ли товар, если да + значение числа - PullRequest
0 голосов
/ 30 января 2012

Мне нужна помощь по поводу моей корзины.Я использую простой скрипт.Все работает так, как я хочу, но я не знаю, как узнать, существуют ли уже некоторые продукты, и если они нужны, я хочу увеличить значение.Сценарий ниже:

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 голосов
/ 30 января 2012

Если у вас есть некоторый контроль над структурой массива, хранящегося в $ _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*/
}

обработать корзину, как только вы закончите добавление в нее.

Код, размещенный в комментариях Алекса, примера проблемы нетрешение

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

Код комментария в конце

...