rolph
Новичок
Работа с элементами базы данных посредствам php
Делаю вывод из базы данных элементов формы.
Написал скрипт для работы с элементами формы для одной таблицы (добавление/удаление/редактирование).
Добавляет элементы, отображает, но не удаляет, не обновляет, не редактирует.
В таблице два поля - id и name(наименование элемента)
Дополнительный вопросик, можно ли это всё запихнуть в функцию и вызывать из отдельного файла, потому что элементы разбил по группам, для каждой группы - таблица в БД?
Заранее спасибо.
Делаю вывод из базы данных элементов формы.
Написал скрипт для работы с элементами формы для одной таблицы (добавление/удаление/редактирование).
Добавляет элементы, отображает, но не удаляет, не обновляет, не редактирует.
В таблице два поля - id и name(наименование элемента)
Дополнительный вопросик, можно ли это всё запихнуть в функцию и вызывать из отдельного файла, потому что элементы разбил по группам, для каждой группы - таблица в БД?
Заранее спасибо.
PHP:
<?php
require_once 'connect.php';
$databasename='form_dept'; /*имя базы*/
if ( !isset( $_GET["action"] ) ) $_GET["action"] = "showlist";
$action = $_GET["action"];
$id = $_GET["id"];
switch ( $action )
{
case "showlist":
show_list();
break;
case "delete":
delete_item( $id );
show_list();
break;
case "update":
global $id;
update_item( $id );
show_list();
break;
case "editform":
global $id;
get_edit_item_form( $id );
break;
case "new":
insert_object();
break;
default:
show_list();
break;
}
/* вывести список элементов базы данных */
function show_list()
{
global $databasename;
$query = "SELECT id, name FROM ".$databasename." WHERE 1 ORDER by id";
$res = mysql_query( $query );
echo "<h2>Список</h2>";
echo "<table class=text cellspacing=1 bgcolor=#CCCCCC align=center>";
echo "<tr><th>ID</th><th>Наименование</th><th>Ред.</th><th>Удл.</th></tr>";
while ( $item = mysql_fetch_array( $res ) )
{
echo "<tr>";
echo "<td bgcolor=#FFFFFF>".$item["id"]."</td>";
echo "<td bgcolor=#FFFFFF>".$item["name"]."</td>";
echo "<td bgcolor=#FFFFFF align='center'><a href='".$_SERVER["PHP_SELF"]."?action=editform&id=".$item["id"]."'><img src='/images/page_white_edit.png' border=`0` /></a></td>";
echo "<td bgcolor=#FFFFFF align='center'><a href='".$_SERVER["PHP_SELF"]."?action=delete&id=".$item["id"]."'><img src='/images/cancel.png' border=`0` /></a></a></td>";
echo "</tr>";
}
echo "</table>";
}
/* редактировать элемент формы */
function get_edit_item_form($id)
{
global $databasename;
echo "<h2>Редактировать элемент - ".$id."</h2>";
$query = "SELECT name FROM ".$databasename." WHERE id=".$id;
$res = mysql_query( $query );
$item = mysql_fetch_array( $res );
echo "<form name='editform' action='".$_SERVER["PHP_SELF"]."?action=update&id=".$id."' method='POST'>";
echo "<table>";
echo "<tr>";
echo "<td>Наименование</td>";
echo "<td><input type='text' name='name' value='".$item["name"]."'></td>";
echo "</tr>";
echo "<tr>";
echo "<td><input type='submit' value='Сохранить'></td>";
echo "<td><button type='button' onClick='javascript: history.back();'>Отменить</button></td>";
echo "</tr>";
echo "</table>";
echo "</form>";
}
/* добавить элемент */
function insert_object()
{
global $databasename;
echo "<h2>Добавить новый элемент</h2>";
if(!empty($_POST['name']))
{
$name=$_POST['name'];
$query = "INSERT INTO ".$databasename."(name) VALUES ('$name')";
$res = mysql_query($query);
echo "Спасибо! ".$name." добавлен(-а)!.\n";
}
else
{
echo "<form name='editform' action=".$_SERVER['REQUEST_URI']." method='POST'>";
echo "<table>";
echo "<tr>";
echo "<td>Наименование</td>";
echo "<td><input type='text' name='name'></td>";
echo "</tr>";
echo "<td><input type='submit' value='Сохранить'></td>";
echo "<td><button type='button' onClick='javascript: history.back();'>Отменить</button></td>";
echo "</tr>";
echo "</table>";
echo "</form>";
}
}
/* обновить элемент */
function update_item($id)
{
global $databasename;
$name = mysql_escape_string( $_POST['name'] );
$query = "UPDATE ".$databasename." SET name='".$name."' WHERE id=".$id;
mysql_query ( $query );
return true;
}
/* удалить элемент */
function delete_item($id)
{
global $databasename;
$query = "DELETE FROM ".$databasename." WHERE id=".$id;
mysql_query ( $query );
return true;
}
?>