Source of: example.shipping.3.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.
*/
?>
<?php
  
include "xtpl.p";
  include 
"include.inc" ;

  
set_error_handler("errorHandler");


  function 
show_HTML_receipt($custID$orderID$connection)
  {
    
// Create a new XTemplate object called $xtpl
    
$xtpl= new XTemplate ("example.shipping.3.xtpl");

    
// Find customer information
    
$query "SELECT *
              FROM customer
              WHERE cust_id = 
$custID";
  
    if (!(
$result = @ mysql_query ($query$connection)))
       
showerror();
    
    
// There is only one matching row
    
$row = @ mysql_fetch_array($result);

    
// Assign the orderId to the template
    
$xtpl->assign("ORDER_ID"$orderID);

    
// Assign the customer data to the template
    
$xtpl->assign("CUSTOMER"$row);

    
// Parse the template data
    
$xtpl->parse("main.customer");
    
    
$orderTotalPrice 0;
  
    
// list the particulars of each item in the order
    
$query "SELECT  i.qty, w.wine_name, i.price, 
                      w.wine_id, w.year, wi.winery_name
              FROM    items i, wine w, winery wi
              WHERE   i.cust_id = 
$custID
              AND     i.order_id = 
$orderID
              AND     i.wine_id = w.wine_id
              AND     w.winery_id = wi.winery_id
              ORDER BY item_id"
;
  
    if (!(
$result = @ mysql_query ($query$connection)))
       
showerror();

    
// Add each item to the email
    
while ($row = @ mysql_fetch_array($result)) 
    { 
       
// Work out the cost of this line item
       
$itemsPrice $row["qty"] * $row["price"];

       
$orderTotalPrice += $itemsPrice;
   
       
$wineDetail showWine($row["wine_id"], $connection);

       
// Assign the qty, wine details, price, and total item
       // cost to the template
       
$xtpl->assign("QTY"$row["qty"]);
       
$xtpl->assign("WINE"$wineDetail);      
       
$xtpl->assign("PRICE"sprintf("%-.2f"$row["price"]));     
       
$xtpl->assign("TOTAL"sprintf("%-.2f"$itemsPrice));  

       
// Parse a template row of items
       
$xtpl->parse("main.items.row");
    }
      
    
// Assign the order total to the template
    
$xtpl->assign("ORDER_TOTAL"sprintf("%-.2f"$orderTotalPrice));

    
// parse all items
    
$xtpl->parse("main.items");

   
// parse the whole document
   
$xtpl->parse("main");

   
// output the templated data
   
$xtpl->out("main");
}

  
// Main ----------
  
   // Re-establish the existing session
   
session_start();    
  
   
// Check if the user is logged in 
   
if (!session_is_registered("loginUsername"))
   {
      
session_register("message");
      
$message "You must login to view your receipt.";

      
// Redirect the browser back to the calling page
      
header("Location: example.order.1.php");
      exit;
   }      

   
// Check the correct parameters have been passed
   // unless the script is run correctly
   
if (!isset($custID) || !isset($orderID))
   {
      
session_register("message");

      
$message "Incorrect parameters to example.shipping.3.php";

      
header("Location: $HTTP_REFERER");
      exit;
   }      

   
// Check this customer matches the custID
   
if ($custID != getCustomerID($loginUsernameNULL))
   {
      
session_register("message");

      
$message "You can only view your own receipts!";
      
header("Location: example.order.1.php");
      exit;
   }

   
// Open a connection to the DBMS
   
if (!($connection = @ mysql_pconnect($hostName
                                      
$username
                                      
$password)))
      
showerror();

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

   
// Show the confirmation HTML page
   
show_HTML_receipt($custID$orderID$connection);
?>


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