<html>
<head>
<title>Customers</title>
</head>
<body>
<h1>Customers</h1>
<?php
// This is a sample PHP form for editing the contents of a table.
// It provides simple "CRUD" (Create, Read, Update, Delete)
// functionality, but no error trapping, search/sort facilities,
// paging, or other goodies. 'Delete' is left as an exercise
// for the reader.
// Incorporate application-specific database connection functions.
require "./DBConn.inc";
// Display contents of table
function present_list()
{
$res = mydb_connect();
if (!$res)
echo "Connection unsuccessful!";
else {
$cur = mydb_exec( $res, "select * from customers order by name" );
if (!$cur)
echo "Query failed.";
else {
echo "<p><table border=1>";
echo "<tr><th>NAME</th><th>ADDRESS</th><th>PHONE</th><th></th></tr>";
while (odbc_fetch_row($cur)) {
$pk = odbc_result($cur, "name"); // obtain primary key
echo "<tr>";
echo "<td>" . $pk . "</td>";
echo "<td>" . odbc_result($cur, "address") . "</td>";
echo "<td>" . odbc_result($cur, "phone") . "</td>";
echo "<td>";
$encodedPK = urlencode($pk);
echo " <a href=\"CustomerIndex1.php?command=update&pk=$encodedPK\">Update</a>";
echo " <a href=\"CustomerIndex1.php?command=delete&pk=$encodedPK\">Delete</a>";
echo "</td>";
echo "</tr>";
}
echo "</table>";
echo "<a href=\"CustomerIndex1.php?command=insert\">New</a>";
}
}
}
// Display form contents
function present_form_body() {
?>
Name: <input type="text" name="name" value="<?php echo $GLOBALS['name'] ?>">
<p>Address: <textarea name="address" rows="5" cols="60"><?php echo $GLOBALS['address'] ?></textarea>
<p>Phone: <input type="textbox" name="phone" value="<?php echo $GLOBALS['_phone'] ?>">
<p><input type="submit" value="Submit">
<?php
}
// Display blank form for user to insert.
function present_insert_form() {
echo "<form method=\"post\" action=\"CustomerIndex1.php?command=insert_process\">";
present_form_body();
echo "</form>";
}
// Process insertion request from $POST form contents
function insert_process() {
$res = mydb_connect();
if (!$res)
echo "Connection unsuccessful!";
else {
$query = "insert into customers(name, address, phone) values (";
$query .= "'" . $POST["name"] . "', ";
$query .= "'" . $POST["address"] . "', ";
$query .= "'" . $_POST["phone"] . "'";
$query .= ")";
// echo $query;
$cur = mydb_exec( $res, $query);
if (!$cur)
echo "Operation failed.";
else
echo "Your details have been recorded!";
}
echo "<p>";
present_list();
}
// Display form for user to update, with default values set
// from row specified by the primary key
function present_update_form() {
// Obtain details about row specified in pk
$res = mydb_connect();
if (!$res)
echo "Connection unsuccessful!";
else {
$pk = $GET["pk"];
$query = "select * from customers where name='$pk'";
// echo $query;
$cur = mydb_exec( $res, $query );
if (!$cur)
echo "Query failed.";
else {
if (odbc_fetch_row($cur)) {
echo "<form method=\"post\" action=\"CustomerIndex1.php?command=update_process\">";
$GLOBALS["name"] = odbc_result($cur, "name"); // obtain row/column values
$GLOBALS["address"] = odbc_result($cur, "address");
$GLOBALS["phone"] = odbc_result($cur, "phone");
// Display form body
present_form_body();
echo "<input type=\"hidden\" name=\"pk\" value=\"$pk\">";
echo "</form>";
} else
echo "Unable to retrieve record.";
}
}
}
// Perform update based on $POST form contents
function update_process() {
$res = mydb_connect();
if (!$res)
echo "Connection unsuccessful!";
else {
$pk = $POST["pk"];
$query = "update customers set ";
$query .= "name = '" . $POST["name"] . "', ";
$query .= "address = '" . $POST["address"] . "', ";
$query .= "phone = '" . $POST["phone"] . "' ";
$query .= "where name = '$pk'";
// echo $query;
$cur = mydb_exec( $res, $query);
if (!$cur)
echo "Operation failed.";
else
echo "Your changes have been recorded!";
}
echo "<p>";
present_list();
}
// Ask user if he or she is sure about this...
function present_delete_confirmation() {
$pk = $_GET["pk"];
echo "Are you sure you wish to delete '$pk'?";
echo "<p><a href=\"CustomerIndex1.php?command=delete_confirmed&pk=$pk\">Yes</a> ";
echo "<a href=\"CustomerIndex1.php\">No</a>";
}
// Perform deletion.
function delete_process() {
$res = mydb_connect();
if (!$res)
echo "Connection Unsuccessful!";
else {
$pk = $_POST['pk'];
$query = "DELETE FROM customers WHERE name ='$pk'";
// echo $query;
$cur = mydb_exec( $res, $query);
if (!$cur)
echo "Operation failed.";
else
echo "record deleted!";
}
echo "<p>";
present_list();[/B]
}
// The '@' symbol before the line ensures that no warning will be
// displayed if $GET["command"] doesn't exist yet.
@ $command = $GET["command"];
switch ($command) {
case "insert":
present_insert_form();
break;
case "insert_process":
insert_process();
break;
case "update":
present_update_form();
break;
case "update_process":
update_process();
break;
case "delete":
present_delete_confirmation();
break;
case "delete_confirmed":
delete_process();
break;
default:
present_list();
}
?>
</body>
</html>