2012-03-27 157 views
0

当用户选择要购买的物品时,我已经设法让一个库存表显示在购物车页面中,但我无法弄清楚如何从不同的页面获取多个表格来显示。 任何帮助,将不胜感激!购物车php mysql

<?php 
    session_start(); 
    $cart=$_SESSION["cart"]; 

    extract($_POST); 
    if (IsSet($productid)||IsSet($_SESSION["notempty"])) $empty=false; 
    else $empty=true; 

    if (!$empty) 
    { 
     if (IsSet($cart[$productid])) $cart[$productid]+=$quantity; 
     else $cart[$productid]=$quantity; 
     $_SESSION["notempty"]=true; 
    } 

    $_SESSION["cart"]=$cart; 

    $conn=mysql_connect("",""); 
    mysql_select_db("webent",$conn); 
    mysql_query("CREATE TABLE Stock (stock_ID INT(3) NOT NULL PRIMARY KEY AUTO_INCREMENT, 
            itemName VARCHAR(50),itemDesc VARCHAR(100), 
            itemImage VARCHAR(10),itemStock VARCHAR(3), 
            itemPrice VARCHAR(5))"); 
?> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr"> 

<head> 
    <title>Jus' Books</title> 
    <link href="style2.css" rel="stylesheet" type="text/css" /> 
</head> 

<body> 

<div id="container"> 

    <div id="masthead"> 

    </div> 

    <div id="navigation"> 
     <p><a href="index1.php">Home</a> 
     <a href="fiction.php">Fiction</a> 
     <a href="travel.php">Travel</a> 
     <a href="sport.php">Sport</a> 
     <a href="arts.php">Arts & Design</a> 
     <a href="cart.php">Shopping Cart</a> 
     <a href="account.php">Manage Account</a></p> 
    </div> 

    <div id="content"> 

     <?php 

     if ($empty) echo "<h4>Your shopping cart is empty</h4>"; 
     else 
     { 
     echo "<h4>Your shopping cart contains:</h4>"; 
     $total=""; 
     foreach ($cart as $id=>$no) 
     { 
      if ($id!="") 
      { 
       $result=mysql_query("SELECT * FROM Stock WHERE stock_ID= $id"); 
       $row=mysql_fetch_array($result); 
       extract($row); 



       if ($itemStock<$no) $no=$itemStock; 

       echo "<p>$no units of item $itemName at $itemPrice each</p>"; 
      } 
      $total+=$no*$itemPrice; 
     } 
     echo "<p>Total to pay: £$total</p>"; 
     } 

     ?> 

     <a href="index1.php">Continue Shopping</a> 
     <a href="checkout.php">Proceed to Checkout</a> 
     <p></p> 

    </div> 

    <div id="footer"> 
     <p><a href="index1.php">Home</a> | 
     <a href="fiction.php">Fiction</a> | 
     <a href="travel.php">Travel</a> | 
     <a href="sport.php">Sport</a> | 
     <a href="arts.php">Arts & Design</a> | 
     <a href="cart.php">Shopping Cart</a> | 
     <a href="account.php">Manage Account</a></p> 
    </div> 

</div> 

</body> 

</html> 

的其它表有相同的字段,但有名字Stock_Travel Stock_Sport Stock_Arts

+2

**警告**您的代码容易受到SQL注入攻击。 – 2012-03-27 12:37:19

回答

0

我无法弄清楚如何从不同的页面得到一个以上的表格中显示

你是什么意思?如果你想从不同的表中选择,修改查询:

$result=mysql_query("SELECT * FROM Stock_Travel WHERE stock_ID= $id"); 
$result=mysql_query("SELECT * FROM Stock_Sport WHERE stock_ID= $id"); 
$result=mysql_query("SELECT * FROM Stock_Arts WHERE stock_ID= $id"); 

我希望这是某种形式的家庭作业,因为它充满微小的瑕疵,不会在生产环境中是很好的。

正如你所看到的,数据库布局远非最佳。为什么Travel/Sport/Arts不存储在股票表的Category字段中?这样,您就不必根据您所在的产品页面的类型来改变您的查询。

此外,我不会依赖extract(),但这是个人的。你一定会想逃避你的查询,或者更确切地说,使用预先准备的语句。

+0

这只是一个任务。我没有真正认为数据库和我应该拥有的一样好。感谢您的答复。 – JTH 2012-03-27 12:50:19

+0

我得到了下面的错误提取行。 “警告:extract()期望参数1是数组,布尔在/ Applications/XAMPP/xamppfiles/htdocs/cart中给出。 86线上的PHP“ – JTH 2012-03-27 12:55:26