МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ "ЛЬВІВСЬКА ПОЛІТЕХНІКА"
ІНСТИТУТ КОМП’ЮТЕРНИХ ТЕХНОЛОГІЙ, АВТОМАТИКИ ТА МЕТРОЛОГІЇ
КАФЕДРА”ЗАХИСТ ІНФОРМАЦІЇ”
Звіт
до лабораторної роботи № 3
з курсу: "Бази даних та знань"
Завдання
Необхідно створити пакет програм по створенню простої бази даних(БД),її доповненню, пошуку запису, видаленню запису і її редагуванню. Пакет програм повинен містити загальне меню по виконуваних діях в якому повинен бути встановлений лічильник відвідування цієї сторінки. Пакет програм повинен оперувати з графічними об'єктами (наприклад, фотографії однокурсників). Текст програм повинен бути написаний на мовах HTML і php. Безпосередня робота з базою даних повинна здійснюватися за допомогою пакету СУБД MySQL. Сервер MySQL повинен знаходитися на машині localhost (там же де і Web-сервер Apache). Програми на php повинні взаємодіяти з сервером MySQL за допомогою включених в php функцій взаємодії з MySQL. Після вивчення представлених нижче текстів програм студент повинен розробити подібний пакет програм для БД, заданої у 1 та 2 лабораторній роботі.
Варіант №4. Оперний театр
1) Атрибути
1. Вистава
2. Дата проведення
3. id спектаклю
4. Жанр
5. id працівника
6. П.І.Б.
7. Посада
8.Зарплата
9. Номер телефону
10.Адреса працівника
11.Гонорар
12.Дата народженння
13. Назва майна
14.id майна
15.Тип майна
16.Місце
17.Ціна місця
18.Ряд
2) Визначення можливих ключів
7
8
Ключ 7
14
15
13
5
Ключ 14,5
3
4
1
2
Ключ 3
3
5
11
Ключ 5,3
3
18
16
17
Ключ 3,18,16
5
12
6
10
9
7
Ключ 5,7
3
5
18
16
Детермінанти: 7,14,3,5,18,16
ТЕКСТ ПРОГРАМИ НА PHP
Файл index.php
<pre>
<?php
include_once('functions.php');
include_once('config.php');
$sql = @mysql_connect($cfg['host'], $cfg['user'] ,$cfg['pass']);
if (!$sql) {
die( 'mysql_connect: '.mysql_error() );
}
if ( !@mysql_select_db($cfg['db'], $sql) ) {
die( 'mysql_select_db: '.mysql_error() );
}
?>
<a href="?act=vuvestu_vse">вивести всі записи</a>
<a href="?act=dobavutu_zapus">добавити запис</a>
<a href="?act=znajtu_zapus">знайти запис</a>
<a href="?act=vudalutu_zapus">видалити запис</a>
<a href="?act=vidredagyvatu_zapus">відредагувати запис</a>
<?php
switch (@$_GET['act'])
{
case 'dobavutu_zapus':
if ( isset($_POST['add']) )
{
$seans = mysql_escape_string($_POST['seans']);
$data = mysql_escape_string($_POST['data']);
$id_spect = mysql_escape_string($_POST['id_spect']);
$janr = mysql_escape_string($_POST['janr']);
q(
'INSERT INTO `spect` (`seans`, `data`, `id_spect`, `janr`) '.
'VALUES (\''.$seans.'\', \''.$data.'\', \''.$id_spect.'\', \''.$janr.'\');'
);
echo '<font color="green">Додано!</font><br/>';
}
?>
<form method='POST'>
seans:
<input type='text' name='seans' value='' />
data:
<input type='text' name='data' value='' />
id_spect:
<input type='text' name='id_spect' value='' />
janr:
<input type='text' name='janr' value='' />
<input type='submit' name='add' value='Добавити' />
</form>
<?php
break;
case 'znajtu_zapus';
if ( isset($_POST['search']) )
{
$seans = mysql_escape_string($_POST['seans']);
$m = q(
'SELECT * FROM `spect` WHERE '.
'`seans` LIKE \'%'.$seans.'%\';'
);
echo 'Знайдено: '.count( $m ).' записів.<br/>';
for ($i=0; $i<=count($m)-1; $i++) {
$m_seans = str_ireplace($seans, '<font color="red">'.$seans.'</font>', $m[$i]['seans']);
echo 'Сеанс: <b>'.$m_seans.'</b>, ';
echo 'Дата: <b>'.$m[$i]['data'].'</b>, ';
echo 'id_spect: <b>'.$m[$i]['id_spect'].'</b>, ';
echo 'janr: <b>'.$m[$i]['janr'].'</b><br/>';
}
}
?>
<form method='POST'>
seans:
<input type='text' name='seans' value='' />
<input type='submit' name='search' value='Знайти' />
</form>
<?php
break;
case 'vudalutu_zapus':
if ( isset($_POST['delete']) )
{
$seans = mysql_escape_string($_POST['seans']);
q(
'DELETE FROM `spect` WHERE `seans` = \''.$seans.'\' LIMIT 1;'
);
echo '<font color="green">Видалено!</font><br/>';
}
?>
<form method='POST'>
seans:
<input type='text' name='seans' value='' />
<input type='submit' name='delete' value='Видалити' />
</form>
<?php
break;
case 'vidredagyvatu_zapus':
if ( isset($_POST['edit_save']) ){
$id = mysql_escape_string($_POST['id']);
$data = mysql_escape_string($_POST['data']);
$seans = mysql_escape_string($_POST['seans']);
$janr = mysql_escape_string($_POST['janr']);
q(
'UPDATE `spect` SET '.
'`seans` = \''.$seans.'\', '.
'`janr` = \''.$janr.'\', '.
'`data` = \''.$data.'\' '.
' WHERE `id_spect` = \''.$id.'\' LIMIT 1; '
);
echo '<font color="green">Даны оновлено!</font></br>';
}
if ( isset($_POST['edit']) )
{
$seans = mysql_escape_string($_POST['seans']);
$m = q(
'SELECT * FROM `spect` WHERE `seans` = \''.$seans.'\' LIMIT 1;'
);
if ( !isset($m[0][0]) ) {
echo '<font color="red">record не знайдений!</font></br>';
}
else {
?>
<form method='POST'>
seans:
<input type='text' name='seans' value='<?php echo $m[0]['seans']; ?>' />
data:
<input type='text' name='data' value='<?php echo $m[0]['data']; ?>' />
janr:
<input type='text' name='janr' value='<?php echo $m[0]['janr']; ?>' />
<input type='hidden' name='id' value='<?php echo $m[0]['id_spect']; ?>' />
<input type='submit' name='edit_save' value='Зберегти' />
</form>
<?php
}
}
?>
<form method='POST'>
seans:
<input type='text' name='seans' value='' />
<input type='submit' name='edit' value='Відредагувати' />
</form>
<?php
break;
case 'vuvestu_vse':
$m = q('SELECT * FROM `spect`;');
echo 'В базі: '.count( $m ).' записів.<br/>';
for ($i=0; $i<=count($m)-1; $i++) {
echo 'Сеанс: <b>'.$m[$i]['seans'].'</b>, ';
echo 'Дата: <b>'.$m[$i]['data'].'</b>, ';
echo 'id_spect: <b>'.$m[$i]['id_spect'].'</b>, ';
echo 'janr: <b>'.$m[$i]['janr'].'</b><br/>';
}
break;
default:
break;
}
inc_counter();
$m = q('SELECT `count` FROM `counter`');
echo '<br/><br/>Counter: <b>'.$m[0]['count'].'</b>';
?>
Файл functions.php
<?php
function q($query)
{
$m = mysql_query($query);
if ( !is_resource($m) ) {
return False;
}
$result = array();
while ($row = mysql_fetch_array($m)) {
$result[] = $row;
}
return $result;
}
function inc_counter()
{
q('UPDATE `counter` SET `count` = `count` + 1 LIMIT 1;');
}
?>
Файл functions.php
<?php
$cfg['host'] = 'localhost';
$cfg['user'] = 'root';
$cfg['pass'] = '';
$cfg['db'] = 'teatr';
?>
Скріншоти програми
ВИСНОВОК:
У даній лабораторній роботі я розробив візуальний інтерфейс для бази даних відповідно до завдання з лабораторної роботи №2, використовуючи мову PHP.