2012-09-04 4 views
1

쇼핑 카트 응용 프로그램을 개발 중이며 $ _SESSION을 (를) 사용하여 카트 항목을 저장하는 데 도움이 필요합니다.

장바구니에 담기에 사용자가 클릭, 다음과 같은 정보가 포함되는 개념 : 제품 ID 예를 들어, 5312, 제품 이름, 제품 수량, 제품 규정 (예 : 색상 : 흰색, 크기 : 등등 중간)

문제

문제는 그 나는 항목 ID를 기준으로 $의 _SESSION의 항목을 저장할 때 . 나는 다음과 같은 가정 할 :

  • 사용자 추가 색상
  • 사용자가 다음 색상이 파란색 제품 # 11의 2 개 항목을 추가 백색 제품 11 개 중 # 1 개 항목

내가 저장 한 경우 항목 ID별로 정보가 항상 무시되고, 각 전화/각 장바구니에 고유 한 항목을 추가하려면 각기 다른 크기, 동일한 제품의 다른 색상을 추가 할 수 있다고 가정하기 때문에 고유 한 항목을 추가하십시오.

어떻게 이러한 문제를 해결할 수 있습니까?

모든 아이디어 나 의견을 보내 주시면 감사하겠습니다.

+0

세션에 주문을 저장하지 않고 세션과 사용자에 대한 참조와 함께 db에 저장합니다. 그러나 $ _SESSION [] = $ product_array; 작동해야합니다 –

+0

당신은 $ _SESSION []이 (가) 매번 고유해야 함을 의미합니까? –

+0

예 []는 배열을 증가시킵니다 –

답변

3

SESSION 변수를 사용하여 다차원 배열을 수행 할 수 있습니다.

이 같은으로
$_SESSION['cart']=array(
    array($product_id,$product_count,$product_options), 
    array($product_id,$product_count,$product_options), 
); 

, 당신은 다음, 배열의 키와 같은 독특한 제품 ID를 가지고있는 수, 옵션 및 기타 정보를 저장할 수 있습니다 :

$_SESSION['cart']=array(
    $product_id=>array($product_count,$product_options), 
    $product_id=>array($product_count,$product_options), 
); 

또는 $product_id 경우

고유하지 않습니다 너는 필요해.

다른 옵션은 장바구니에 대한 테이블을 만든 다음 세션에 장바구니 ID를 저장하게하는 것입니다. 그럼 당신은 단순히 당신의 카트 정보에 대한 MySQL의 테이블을 확인합니다.

0

제품 ID를 키로 사용하여 어레이를 저장할 수 있습니다.

+0

하지만 동일한 제품을 추가했지만 색상/크기/색상이 다른 경우 제품 ID가 중복됩니까? –

+0

아니요, 키는 제품 ID이며 제품과 함께 배열을 포함합니다. – blockhead

0

세션에 제품을 저장하는 대신 장바구니 항목 개체를 저장하십시오. 카트 항목 객체는 해당 항목의 속성 (색상, 수량, 필요한 경우 다른 가격 등)과 함께 제품 (제품 ID)에 대한 참조를 갖습니다. 각 장바구니 항목에 임의의 ID를 할당하면 무시하는 문제가 발생하지 않습니다.

관련 문제