CRUD application example


A classical form of the web database interface often called CRUD - after Create, Read, Update and Delete.
These 4 operations are like basic musical scales - lets you build any application out of these bricks.
Here is an example of such a basic application which performs listing (R), adding(C), editing(U) and deleting records.

With SafeMySQL clas it's going to be literally a few lines. And it can be easily extended to whatever number of fields, without writing additional code, but only by extending form template and adding new members to the $fields variable.

<?php  include 'safemysql.class.php';$db    = new SafeMysql();$table = "test"; if($_SERVER['REQUEST_METHOD']=='POST') {  if (isset($_POST['delete'])) {    $db->query("DELETE FROM ?n WHERE id=?i", $table, $_POST['delete']);  } elseif ($_POST['id']) {     $db->query("UPDATE ?n SET name=?s WHERE id=?i",$table, $_POST['name'], $_POST['id']);  } else {     $db->query("INSERT INTO ?n SET name=?s", $table, $_POST['name']);  }   header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']);    exit;  }  if (!isset($_GET['id'])) {  $LIST = $db->getAll("SELECT * FROM ?n",$table);  include 'list.php'; } else {  if ($_GET['id']) {    $row = $db->getRow("SELECT * FROM ?n WHERE id=?i", $table, $_GET['id']);    foreach ($row as $k => $v) $row[$k]=htmlspecialchars($v);   } else {     $row['name']='';     $row['id']=0;   }   include 'form.php'; }


Also we well need 2 templates,
list.php
<a href="?id=0">Add item</a><?php foreach ($LIST as $row): ?><li><a href="?id=<?=$row['id']?>"><?=$row['name']?></a><? endforeach ?>


...and form.php:
<form method="POST"><input type="text" name="name" value="<?=$row['name']?>"><br><input type="hidden" name="id" value="<?=$row['id']?>"><input type="submit"><br><a href="?">Return to the list</a></form><?php  if ($row['id']):?><div align=right><form method="POST"><input type="hidden" name="delete" value="<?=$row['id']?>"><input type="submit" value="delete"><br></form></div><?php endif?>


Related articles: