Source of: example.5-7.php

<?
/*
Source code example for Web Database Applications

Unless otherwise stated, the source code distributed with this book can be
redistributed in source or binary form so long as an acknowledgment appears
in derived source files.
The citation should list that the code comes from Hugh E.
Williams and David Lane, "Web Database Application with PHP and MySQL"
published by O'Reilly & Associates.
This code is under copyright and cannot be included in any other book,
publication, or educational product without permission from O'Reilly &
Associates.
No warranty is attached; we cannot take responsibility for errors or fitness
for use.
*/
?>
<!DOCTYPE HTML PUBLIC 
               "-//W3C//DTD HTML 4.0 Transitional//EN"
               "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
  <title>Hugh and Dave's Online Wines</title>
</head>
<body bgcolor="white">

<h1>New Wines</h1>
Here are three top new wines we have in stock
<br><br>
<?php
   
include 'db.inc';
   include 
'error.inc';

   
// Print out the varieties for a wineID
   
function showVarieties($connection$wineID)
   {
      
// Find the varieties of the current wine,
      // and order them by id
      
$query "SELECT gv.variety 
                FROM grape_variety gv, 
                     wine_variety wv, wine w 
                WHERE w.wine_id = wv.wine_id 
                AND wv.variety_id = gv.variety_id 
                AND w.wine_id = 
$wineID
                ORDER BY wv.id"
;

      
// Run the query
      
if (!($result = @ mysql_query($query$connection)))
         
showerror();

      
// Retrieve the varieties ...
      
while ($row = @ mysql_fetch_array($result))
         
// ... and print each one
         
echo " " $row["variety"];
   }

   
// Print out the pricing information
   
function showPricing($connection$wineID)
   {
      
// Find the varieties of the current wine,
      // and order them by id
      
$query "SELECT cost, case_cost
                FROM inventory
                WHERE wine_id = 
$wineID
                ORDER BY date_added LIMIT 1"
;

      
// Run the query
      
if (!($result = @ mysql_query($query$connection)))
         
showerror();

      
// Retrieve the oldest price
      
$row = @ mysql_fetch_array($result);

      
// Print the pricing information
      
echo "\n<tr>\n\t<td bgcolor=\"gray\">" .
           
"<b>Our price: </b>" 
           
$row["cost"] . 
           
"(" $row["case_cost"] . " a dozen)";

      
// Calculate the saving for 12 or more bottle
      
$dozen_saving $row["cost"] - ($row["case_cost"]/12);

      
// If there's a saving, show what it is
      
if ($dozen_saving 0)
         
printf(" Save <b>%.2f</b> per bottle when 
                 buying a dozen\n"
$dozen_saving);
      echo 
"</td>\n</tr>";
   }

   
// ---------
   
   
$query "SELECT DISTINCT wi.winery_name, 
                     w.year, 
                     w.wine_name, 
                     w.description,
                     w.wine_id
             FROM wine w, winery wi, inventory i
             WHERE w.description != \"\"
             AND w.winery_id = wi.winery_id
             AND w.wine_id = i.wine_id
             ORDER BY i.date_added DESC LIMIT 3"
;

   
// Open a connection to the DBMS
   
if (!($connection = @ mysql_connect($hostName
                                       
$username
                                       
$password)))
      die(
"Could not connect to database");
      
   if (!
mysql_select_db("winestore"$connection))
      
showerror();


   
// Run the query created above on the database through
   // the connection
   
if (!($result = @ mysql_query ($query$connection)))
      
showerror();


   echo 
"\n<table border=\"0\">";

   
// Process the three new wines
   
while ($row = @ mysql_fetch_array($result))
   {
      
// Print a heading for the wine
      
echo "\n<tr>\n\t<td bgcolor=\"maroon\">" .
           
"<b><font color=\"white\">" 
           
$row["year"] . " " .
           
$row["winery_name"] . " " .
           
$row["wine_name"] . " ";

      
// Print the varieties for this wine
      
showVarieties($connection$row["wine_id"]);     

      echo 
"</font></b></td>\n</tr>";

      
// Print the wine review
      
echo "\n<tr>\n\t<td bgcolor=\"silver\">" .
           
"<b>Review: </b>" .
           
$row["description"] .
           
"</td>\n</tr>";

      
// Show the pricing information
      
showPricing($connection$row["wine_id"]);

      echo 
"\n<tr align=\"right\">\n\t<td>" .
           
"<a href=\"example.5-8.php?qty=1&amp;wineId=" .
           
$row["wine_id"] .
           
"\">Add a bottle to the shopping cart</a>" .  
           
"</td>\n</tr>";  

      
// Blank row for presentation
      
echo "\n<tr>\n\t<td></td>\n</tr>";
   }

   echo 
"\n</table>\n";

   if (!
mysql_close($connection))
      
showerror();
?>
</body>
</html>


© 2000--2001 Hugh E. Williams and David Lane.
Valid HTML 4.01!