Пример кода, работающего с MySQL


Самая классическая задача при работе с базой данных - это приложение вида форма-таблица.
Таблица отображает записи, лежащие в БД, а форма служит для их добавледния/редактирования.

Вот код скрипта, который и реализует упрощенную схему такого приложения.
Кроме уникального идентификатора строки id, в таблице имеется только одно текстовое поле name
Удаление в данном примере не предусмотрено, но при желании, его нетрудно добавить. Особенно учитывая тот факт, что записи желательно не удалять, а помечать, как непоказываемые. то есть, удаление сведется к апдейту.


<?  
mysql_connect
(); 
mysql_select_db("new"); 
$table "test"
if(
$_SERVER['REQUEST_METHOD']=='POST') { //form handler part: 
  
$name mysql_real_escape_string($_POST['name']); 
  if (
$id intval($_POST['id'])) { 
    
$query="UPDATE $table SET name='$name' WHERE id=$id"
  } else { 
    
$query="INSERT INTO $table SET name='$name'"
  } 
  
mysql_query($query) or trigger_error(mysql_error()." in ".$query); 
  
header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']);  
  exit;  
}  
if (!isset(
$_GET['id'])) { //listing part: 
  
$LIST=array(); 
  
$query="SELECT * FROM $table";  
  
$res=mysql_query($query); 
  while(
$row=mysql_fetch_assoc($res)) $LIST[]=$row
  include 
'list.php'
} else { 
// form displaying part: 
  
if ($id=intval($_GET['id'])) { 
    
$query="SELECT * FROM $table WHERE id=$id";  
    
$res=mysql_query($query); 
    
$row=mysql_fetch_assoc($res); 
    foreach (
$row as $k => $v$row[$k]=htmlspecialchars($v); 
  } else { 
    
$row['name']=''
    
$row['id']=0
  } 
  include 
'form.php'
}  
?>

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>

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