2014-02-22 128 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

相关问题