Source of: ../Wda42/example.5-5.php

<?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>Exploring Wines in a Region</title>
</head>

<body bgcolor="white">
<?php
  
  
include 'db.inc';
  
  
// Show all wines in a region in a <table>
  
function displayWinesList($connection
                            
$query
                            
$regionName)
  {
     
// Run the query on the DBMS
     
if (!($result = @ mysql_query ($query$connection)))
        
showerror();
         
     
// Find out how many rows are available
     
$rowsFound = @ mysql_num_rows($result);

     
// If the query has results ...
     
if ($rowsFound 0
     {
         
// ... print out a header
         
echo "Wines of $regionName<br>";

         
// and start a <table>.
         
echo "\n<table>\n<tr>" .
              
"\n\t<th>Wine ID</th>" 
              
"\n\t<th>Wine Name</th>" 
              
"\n\t<th>Type</th>" .
              
"\n\t<th>Year</th>" 
              
"\n\t<th>Winery</th>" .
              
"\n\t<th>Description</th>\n</tr>";

         
// Fetch each of the query rows 
         
while ($row = @ mysql_fetch_array($result))
         {
            
// Print one row of results
            
echo "\n<tr>" .
                 
"\n\t<td>" $row["wine_id"] . "</td>" .
                 
"\n\t<td>" $row["wine_name"] . "</td>" .
                 
"\n\t<td>" $row["type"] . "</td>" .
                 
"\n\t<td>" $row["year"] . "</td>" .
                 
"\n\t<td>" $row["winery_name"] . "</td>" .
                 
"\n\t<td>" $row["description"] . "</td>" .
                 
"\n</tr>";
         } 
// end while loop body
    
         // Finish the <table>
         
echo "\n</table>";
     } 
// end if $rowsFound body

     // Report how many rows were found
     
echo "$rowsFound records found matching your   
           criteria<br>"
;
  } 
// end of function


  // Secure the user parameter $regionName
  
$regionName clean($_GET["regionName"], 30);

  
// Connect to the MySQL DBMS
  
if (!($connection = @ mysql_connect($hostName
                                      
$username,
                                      
$password)))
     die(
"Could not connect");

  if (!
mysql_select_db($databaseName$connection))
     
showerror();

  
// Start a query ...
  
$query "SELECT   w.wine_id,  
                     w.wine_name,
                     w.description,
                     w.type,
                     w.year,
                     wry.winery_name
            FROM     winery wry, region r, wine w
            WHERE    wry.region_id = r.region_id
            AND      w.winery_id = wry.winery_id"
;

   
// ... then, if the user has specified a region,
   // add the regionName as an AND clause ...
   
if ($regionName != "All")
     
$query .= " AND r.region_name = \"$regionName\"";

   
// ... and then complete the query.
   
$query .= " ORDER BY w.wine_name";

   
// run the query and show the results
   
displayWinesList($connection$query$regionName);

   
// Close the DBMS connection
   
mysql_close($connection);
?>
</body>
</html>


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