Source of: example.6-10.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
  
// This code needs an auxiliary table called "ids"
  // that might be created with:
  // CREATE TABLE ids (
  // region_id int default 0,
  // other_id int default 0,
  // another_id int default 0
  // );
  // It has one row, and no primary key is required.
  // After creating the table, a row is needed,
  // so issue an: INSERT INTO ids (NULL, NULL, NULL);
  // (if it's being added later, use MAX() to get the
  //  correct ID values!)

  
include 'db.inc';
  include 
'error.inc';

  function 
getNextRegion ($connection)
  {
     
// A nice way to do it... use an auxiliary table
     // Lock the auxiliary table
     
$query "LOCK TABLES ids WRITE";

     if (!
mysql_query($query$connection))
        
showerror();

     
// Add one to the region_id attribute
     
$query "UPDATE ids SET region_id = region_id + 1";

     if (!
mysql_query($query$connection))
        
showerror();

     
// Find out the new value of region_id
     
$query "SELECT * FROM ids";

     if (!(
$result mysql_query($query$connection)))
        
showerror();

     
// Get the row that is returned
     
$row mysql_fetch_array($result);

     
// Unlock the table
     
$query "UNLOCK TABLES";

     if (!
mysql_query($query$connection))
        
showerror();

     
// Return the region_id
     
return ($row["region_id"]);
  }
  
// MAIN -----
  
if (!($connection = @ mysql_connect($hostName,
                                    
$username,
                                    
$password)))
     die(
"Could not connect to database");

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

  if (empty(
$regionId))
  {
     
$regionId 
        
getNextRegion($connection$databaseName);
?>
<!DOCTYPE HTML PUBLIC
   "-//W3C//DTD HTML 4.0 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
  <title>Insert a region</title>
</head>
<body bgcolor="white">
region_id: <?= $regionId ?>
<br>
<form method="post" action="example.6-10.php">
  <input type="hidden"
   name="regionId" value="<?=$regionId;?>">

  <br>region_name:
  <br><input type="text" name="regionName" size=80>
  <br>description:
  <br><textarea name="description" rows=4 cols=80>
      </textarea>
  <br><input type="submit">
</form>
</body>
</html>
<?php
  
}
  else
  {
     
$regionId clean($regionId3);
     
$regionName clean($regionName20);
     
$description clean($description255);

     
$query "INSERT INTO region SET " .
       
"region_id = " $regionId ", " .
       
"region_name = \"" $regionName "\", " .
       
"description = \"" $description "\"";

     if ((@ 
mysql_query ($query$connection))
             && @ 
mysql_affected_rows() == 1)
        
header("Location: insert_receipt.php?values=$regionId&status=T");
     else
        
header("Location: insert_receipt.php?status=F");
  }
?>  


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