Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
kr_1_php.docx
Скачиваний:
14
Добавлен:
09.11.2019
Размер:
1.39 Mб
Скачать

Задание №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; ?>

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]