2014-02-22 52 views
0

所以這裏是我的問題。我可以將一件物品添加到購物車中。但我希望能夠添加更多項目。我使用的形式和GET方法添加的項目將2件或以上的商品添加到購物車

require "connect.php"; 
    $query = "SELECT `DVDID`, `NameOfTheDVD`, `Quantity`, `Price` FROM `DVD` "; 
    $stmt = $dbhandle->prepare($query); 
    $stmt->execute(); 

    $num = $stmt->rowCount(); 

    if($num>0){ 
    while ($row = $stmt->fetch(PDO::FETCH_OBJ)){ 
     if(!isset($_SESSION['cart'])){ 
    echo "<table border='3' cellpadding='10' position='relative` bottom= '450px' color = 'blue';>";//start table 

    echo '<div class="DVD ID">'; 
    echo '<tr><td>DVD Id : '.$row->DVDID. '<br></td>' ; 
    echo '<td>Name Of the DVD : '.$row->NameOfTheDVD.'<br></td>'; 
    echo '<td>Quantity : '.$row->Quantity.'</td>'; 
    echo '<td>Price: '.$row->Price.'</td></tr> '; 

    $mydvd = $row->DVDID; 
    $name = $row->NameOfTheDVD; 
    $Quantity = $row -> Quantity; 
    $Price = $row -> Price; 

首先我從數據庫中檢索的產品,然後通過表格將它們添加托特^ h車和GET方法

echo '<input type="hidden" name="id" value="'.$mydvd.'">'; 
    echo '<input type="hidden" name="item" value="'.$name.'">'; 
    echo '<input type="hidden" name="Quantity" value="'.$Quantity.'">'; 
    echo '<input type="hidden" name="Price" value="'.$Price.'">'; 
    echo '<input type="hidden" name="Cart" value="'.$cartItemCount.'">'; 
    //echo '<input type="submit" value="Add To Basket">'; 
    echo '<a href = "basket.php?id='.$mydvd.'&name='.$name.'&Quantity='.$Quantity.'&Cart='.$cartItemCount.'&Price='.$Price.'"> Add To Basket</a><br>'; 

,這是我如何打印成績列

$myid = $_GET['id']; 
$DVDname = $_GET['name']; 
$Qty = $_GET['Quantity']; 
$price = $_GET['Price']; 


echo '<div class="DVD ID">'; 
echo '<h1> Cart </h1>'; 
echo '<table border="1" cellspacing="1" position="relative" left="250">'; 
echo "<tr><th> DVD ID<td> " . $myid . "</td></th></tr>"; 
echo "<tr><th> DVD Name<td> " . $DVDname . "</td></th></tr>"; 
echo "<tr><th> Quantity<td> " . $Qty . "</td></th></tr>"; 
echo "<tr><th> Price<td> " . $price . "</td></th></tr>"; 

echo '</div>'; 

謝謝您的幫助

+0

你知道,任何人都可以存儲在隱藏的輸入,像價格篡改數據,例如? – greg0ire

+0

我現在不擔心安全問題,因爲這只是一項任務。 – mfredy

+0

超過1項。相同的物品或不同的物品? – Craftein

回答

0

我ñ催產素會寫整個代碼爲你,而是要給你一些建議,講座等

首先,你需要知道什麼,以及如何在PHP中使用SESSION,使用session_start()session_destroy()$_SESSION變量。

現在,您的購物車應該存儲在一個會話變量中,並且它應該是並且將是一個產品數組。

,我建議爲了簡單起見結構是:

$_SESSION['cart'] = array(
    12 => array('quantity'=>99), 
    15 => array('quantity'=>10) 
); 

在上面的代碼,12和15是產品ID作爲在$_SESSION['cart']密鑰。這樣,如果我們需要更新某些信息,例如添加或減少數量,那麼我們可以更容易地在數組中找到產品。

而且,上面的例子很簡單,使其工作,如果你要告訴的車,你需要把它放在一個循環然後從數據庫中查詢其他信息,因爲它循環。您將使用您的搜索查詢的ID(鍵)。但是,您還可以將其他信息存儲在array中,其中數量是將商品添加到購物車時的數量,因此您無需從數據庫中查詢每件商品。

要添加一個項目到購物車,顯然你需要做一個$_GET$_POST。我相信你已經知道如何做到這一點。

現在,如果你想多相同的項目,那麼我建議每個項目都有自己的形式與數量文本字段。我不知道你的網站是怎麼樣的,什麼時候,什麼地點「顧客」可以將商品添加到購物車,所以算法,結構等可能會有所不同。

所以,如果多個不同的項目,那麼你需要的javascript的幫助張貼在你的PHP腳本來處理前先驗證有效的值。你可以在php級別上做到這一點,但我建議你在javascript級別上做。在這裏,我說你應該只有一個表格的產品清單。我建議不要這樣做。

在車添加或更新產品的一個實例。本例使用GET。

if(isset($_GET['product_id'],$_GET['product_quantity'])) 
{ 
    $pid = $_GET['product_id']; 
    $pq = $_GET['product_quantity']; 
    $_SESSION['cart'][$pid]['qty'] = $pq; 
    // if you have more, you can just add something like 
    // $_SESSION['cart'][$pid]['name'] = "Apple"; 
} 

對於從購物車中刪除項目:

if(isset($_GET['product_id'])) 
{ 
    $pid = $_GET['product_id']; 
    unset($_SESSION['cart'][$pid]); 
} 
+0

我只是想知道你是如何得到12和15.他們只是隨機數字。而不是12和15我可以有1,2,3 – mfredy

+0

他們只是隨機數字作爲例子。他們是你的產品ID。查看我的第二個代碼塊以更好地理解。 - 因此,如果您有一個ID爲99的產品並想將其添加到購物車中,那麼我們將使用99作爲會話數組中產品的關鍵字。 – Craftein

+0

12 => array('quantity'=> 99)你知道數量,這是否意味着從數據庫中的字段? – mfredy

相關問題