Корзина php mysql - PullRequest
       60

Корзина php mysql

0 голосов
/ 27 марта 2012

Мне удалось получить одну таблицу запасов для отображения на странице корзины, когда пользователь выбирает предмет для покупки, но я не могу понять, как получить более одной таблицы с разных страниц для отображения. Любая помощь будет оценена!

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

1 Ответ

0 голосов
/ 27 марта 2012

Я не могу понять, как получить более одной таблицы с разных страниц для отображения

Что вы подразумеваете под этим? Если вы хотите выбрать из разных таблиц, измените запрос:

$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 в таблице Stock? Таким образом, вам не нужно изменять запрос в зависимости от типа страницы продукта, на которой вы находитесь.

Кроме того, я бы не стал полагаться на extract(), но это личное. Вы определенно захотите избежать своих запросов или, скорее, использовать подготовленные заявления.

...