Задание №3 Разработка приложений бд на cервере MySql с помощью php
Цель работы: изучить настройки сервера БД MySQL, возможности подключения к БД с помощью PHP
Задание к работе:
Ознакомиться с теоретическим материалом.
Создать БД согласно варианту (предметную область взять из табл. 2)
Разработать структуру таблиц
Создать скрипт на php для просмотра записей таблиц, поиска по критерию, добавления информации, удаления записей и изменения информации
Оформить отчет согласно требованиям.
Таблица 2 – Индивидуальное задание
2 |
Номенклатура оборудования |
Ход работы:
1.Создадим БД mysql используя phpmyadmin. В данной БД создадим таблицу с наименованием оборудования: equipment
CREATE TABLE IF NOT EXISTS `equipment` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`type` varchar(255) NOT NULL,
`full_name` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=10 ;
2.Для отображения всего списка оборудования будем использовать главный файл lab3.php. Листинг приведен ниже:
<?
$connect = mysql_connect('localhost', 'root', '');
mysql_select_db('lab_2');
$result = mysql_query('SELECT * FROM equipment');
$baseUrl = 'http://'.$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']);
?>
<style type="text/css">
.btn{
float:right;
}
</style>
<div style="width: 600px; margin: 0px auto;">
<table border="1" >
<thead>
<caption>Equipment list</caption>
<th>id</th>
<th>type</th>
<th>full name</th>
<th width="100">action</th>
</thead>
<tbody>
<? while ($row = mysql_fetch_array($result)): ?>
<tr>
<td><? echo $row["id"]; ?></td>
<td><? echo $row["type"]; ?></td>
<td><? echo $row["full_name"]; ?></td>
<td><a href="<?= $baseUrl . '/lab_3_edit.php?id=' . $row['id']; ?>">Edit | </a>
<a href="<?= $baseUrl . '/lab_3_delete.php?id=' . $row['id']; ?>">Delete</a>
</td>
</tr>
<? endwhile; ?>
<tr>
<form action="lab3_search.php" method="post" name="id_search">
<td><input type="text" size="4" name="id">
<input type="submit" name="submit_id" value="Find" class="btn">
</form>
<form action="lab3_search.php" method="post" name="type_search">
<td><input type="text" size="15" name="type">
<input type="submit" name="submit_type" value="Find" class="btn">
</form>
<form action="lab3_search.php" method="post" name="name_search">
<td><input type="text" size="40" name="full_name">
<input type="submit" name="submit_name" value="Find" class="btn">
</form>
<td></td>
</tr>
</tbody>
</table>
<a href="<?=$baseUrl . '/lab_3_add.php' ?>">Add new</a>
</div>
На экране это выглядит следующим образом:
На данном рисунке изображен список оборудования. Также ссылки для добавления/удаления/редактирования элементов. Для каждого поля (id, type, full name) реализован поиск по значению (для поиска необходимо ввести в соответствующее поле значение и нажать кнопку find).
3. Реализация поиска по значению полей:
На рисунке ниже показан поиск по значению id=1 :
Листинг поиска по значению(файл lab3_search.php):
<? $data = $_POST; if($value = $data['submit_id']){ $field = 'id'; } if($data['submit_type']){ $field = 'type'; } if($data['submit_name']){ $field = 'full_name'; } $connect = mysql_connect('localhost', 'root', ''); mysql_select_db('lab_2'); $table = 'equipment'; $condition = ' WHERE ' . $field . '="' . $data[$field] . '"'; $result = mysql_query('SELECT * FROM ' . $table . $condition); ?> <div style="width: 600px; margin: 0px auto;"> <table border="1" width="600" style="margin: 0px auto;"> <thead> <th>id</th> <th>type</th> <th>full name</th> </thead> <tbody> <? while ($row = mysql_fetch_array($result)): ?> <tr> <td><? echo $row["id"]; ?></td> <td><? echo $row["type"]; ?></td> <td><? echo $row["full_name"]; ?></td> </tr> <? endwhile; ?> </tbody> </table> <div id="navigation" style=""> <a href="javascript:history.back()">Back</a> </div> </div>
4. Реализация добавления новых записей в бд (файл lab_3_add.php):
<?if(!$_POST):?>
<form action="lab_3_add.php" method="post">
<label for="type">Type of equipment</label>
<input type="text" id="type" name="type"/><br>
<label for="full_name">Full name of equipment</label>
<input type="text" id="full_name" name="full_name"/><br>
<input type="submit" value="Add"/>
</form>
<?else:
$connect = mysql_connect('localhost', 'root', '');
if (!$connect) die('connection error!');
mysql_select_db('lab_2', $connect);
$table = 'equipment';
mysql_query('INSERT INTO ' . $table . ' (type, full_name) VALUES ("' . $_POST['type'] . '", "' . $_POST['full_name'] . '")');
$baseUrl = 'http://'.$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']) . '/';
mysql_close($connect);
$redirectUrl = $baseUrl . 'lab3.php';
header ("Location: " . $redirectUrl);
endif;?>
Результат показан на рисунке ниже:
5.Реализация редактирования записей БД.
Для редактирования записи необходимо нажать на ссылку «Edit» соответствующей записи. Форма редактирования аналогична форме добавления новой записи. Листинг приведен ниже (lab_3_edit.php):
<? if($_POST):
$connect = mysql_connect('localhost', 'root', '');
if (!$connect) die('connection error!');
mysql_select_db('lab_2', $connect);
$table = 'equipment';
mysql_query('UPDATE ' . $table . ' SET type="' . $_POST['type'] . '", full_name="' . $_POST['full_name'] . '" WHERE id="' . $_POST['id'] . '"');
$baseUrl = 'http://'.$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']) . '/';
mysql_close($connect);
$redirectUrl = $baseUrl . 'lab3.php';
header ("Location: " . $redirectUrl);
endif;
?>
<? if ($_GET['id']):
$connect = mysql_connect('localhost', 'root', '');
if (!$connect) die('connection error!');
mysql_select_db('lab_2', $connect);
$table = 'equipment';
$result = mysql_query('SELECT * FROM ' . $table . ' WHERE id="' . $_GET['id'] . '"');
$row = mysql_fetch_array($result);
?>
<form action="lab_3_edit.php" method="post">
<label for="type">Type of equipment</label>
<input type="text" id="type" name="type" value="<?=$row['type']?>" /><br>
<label for="full_name">Full name of equipment</label>
<input type="text" id="full_name" name="full_name" value="<?=$row['full_name']?>" /><br>
<input type="hidden" name="id" value="<?=$row['id']?>" />
<input type="submit" value="Add"/>
</form>
<? endif; ?>
5. Удаление записей происходит путем нажатия напротив соответствующей записи кнопки «Delete». Листинг lab_3_delete.php:
<? if ($_GET['id']):
$connect = mysql_connect('localhost', 'root', '');
if (!$connect) die('connection error!');
mysql_select_db('lab_2', $connect);
$table = 'equipment';
mysql_query('DELETE FROM ' . $table . ' WHERE id="' . $_GET['id'] . '"');
$baseUrl = 'http://'.$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']) . '/';
mysql_close($connect);
$redirectUrl = $baseUrl . 'lab3.php';
header ("Location: " . $redirectUrl);
?>
<? endif; ?>