2014-10-29 2 views
0

게시하기 전에 포럼을 통해 살펴 보았습니다.PHP : 배열에서 트랙 수량 및 총 가격은

카트의 항목 수와 총 가격을 추적하고 싶은 독특한 PHP 설정이 있습니다. 유일한 문제는 그것을 작동시킬 수 없다는 것입니다.

이것은 처음으로 PHP에서 처음 만들었습니다.

다음은 설정 방법입니다.

먼저 전역 변수를 사용하여 데이터베이스에서 특정 항목을 구문 분석하고 호출합니다.

특정 양식을 제출할 때 특정 항목이 다시 나타납니다.

특히이 문제의 경우 항목 ID 값을 요청을 처리하는 다른 파일을 참조하는 링크를 통해 전달하고 있습니다.

이 파일은 카트가 가져 와서 ITEM ID를 MYSQL 데이터베이스에 참조하는 세션 배열을 만듭니다. $ _SESSION [ 'cart']이라고합니다.

다음은 코드에 대해 작성한 것입니다.

// PASS ITEM ID TO ADD CART PAGE. WHERE pID = Product ID. 
 

 
<?php 
 

 
\t // Pull information from DB to translate into HTML 
 
\t \t \t \t \t 
 
\t $results->data_seek(0); 
 

 
\t while($row = $results->fetch_assoc()){ 
 

 
\t \t $pId = $row['ProductID']; 
 
    } 
 

 
?> 
 

 
<a href="addc.php?id=<?php echo $pId ?>"> Add to cart </a> 
 

 

 
// ADD ITEMS TO CART 
 

 

 
// Session 
 
session_start(); 
 

 

 
// If empty cart set empty 
 

 
if(empty($_SESSION['cart'])) { 
 
\t $_SESSION['cart'] = array(); 
 
} 
 

 

 
// Store ID 
 

 
$thisID = $_GET['id']; 
 

 

 
// Push ID into Array 
 

 
array_push($_SESSION['cart'],$thisID); // ADDS TO ARRAY 
 

 
header('Location:cart.php'); // REDIRECTS TO CART 
 

 

 
// NOW ON CART PAGE 
 

 
// Convert Cart Session to Strings & Store 
 

 
if(empty($_SESSION['cart'])) { 
 
\t $_SESSION['cart'] = array(); 
 
\t $itemId = 0; 
 
} else { 
 
\t $itemId = implode(",",$_SESSION['cart']); 
 
} 
 

 

 
// Reference Above Strings to DB 
 

 
$results = run_my_query("SELECT * FROM Products WHERE ProductID IN ($itemId)");
지금이

  • 과의 문제가 여러 항목을 허용하지만,이 제품은 한 번에만 표시됩니다의
  • 없음 확실한 방법 (따라서 내가 양을 추적 할 수 없음) 뽑은 상품을 바탕으로 한 합계 제품

이 시점에서 배열을 연관 배열로 만들고 두 배열을 병합하려고 시도했지만이 방법을 사용하는 것이 더 쉬운 방법이라고 생각합니다.

미리 감사드립니다.

+0

당신이 배열의 항목의 ID를 밀어시 장바구니에 각 항목의 수량이 있습니까 ? – Keeleon

+0

이 실제 버전에는 없습니다. 내가 게시 한 후이 배열의 행동을 시도했다; "ID"=> $ itemID, "QT"=> $ itemQT. 하지만 그건 효과가 없었습니다. – Kris

답변

3

카트 어레이의 키로 제품 ID를 사용해야합니다 (예 :

그것은 배열에 루프를 가진 또는 in_array()를 사용하지 않고, 카트 이런 식으로 특정 항목을 조회 FAR 쉽게
$_SESSION['cart'][$thisID] = $quantity; 

.

장바구니에 카트, 또는 업데이트 수량에 추가 : 코멘트 요청에 따라


, 여기 당신이 몇 가지 기본적인 카트 작업을 처리 할 것입니다 방법

을 : 카트에서 제거
$_SESSION['cart'][$productID] = $_POST['item_quantity']; 

unset($_SESSION['cart'][$productID]); 

장바구니에 담긴 제품의 ID를 받으실 :

16,이 항목이 장바구니에 있는지, 그리고 얼마나 많은 :

$amount = isset($_SESSION['cart'][$productID]) ? false : $_SESSION['cart'][$productID]; 
+0

좀 더 자세히 설명해 주시겠습니까? 나는 그 개념을 이해하지만, 그 적용은 아니다. – Kris