0

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

    <?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

4

1 回答 1

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 不存储在CategoryStock 表的字段中?这样您就不必根据您所在的产品页面类型更改查询。

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

于 2012-03-27T12:44:10.093 回答