МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
ІКТА
кафедра ЗІ
З В І Т
до лабораторної роботи №3
з навчальної дисципліни: «Бази даних та знань»
Завдання
Необхідно створити пакет програм по створенню простої бази даних(БД),її доповненню, пошуку запису, видаленню запису і її редагуванню. Пакет програм повинен містити загальне меню по виконуваних діях в якому повинен бути встановлений лічильник відвідування цієї сторінки. Текст програм повинен бути написаний на мовах HTML і php. Безпосередня робота з базою даних повинна здійснюватися за допомогою пакету СУБД MySQL. Сервер MySQL повинен знаходитися на машині localhost (там же де і Web-сервер Apache). Програми на php повинні взаємодіяти з сервером MySQL за допомогою включених в php функцій взаємодії з MySQL. Після вивчення представлених нижче текстів програм студент повинен розробити подібний пакет програм для БД, заданої у 1 та 2 лабораторній роботі.
Варіант №21
В’язниця
Атрибути:
Поверх
Центральний тип забудови в’язниці
Персонал
П І Б персоналу
Спеціальність персоналу
Час обходу території
Кабінет
№ кабінету
Особовий № ув’язненого
П І Б ув’язненого
Степінь злочину
Тип злочну і стаття за якою відбувається покарання
Термін ув’язнення
Можливість амністії
Тип камери
Дозвілля
1
2
3
4
5
6
7
8
9
10
11
12
12
14
15
16
Визначення можливих ключів:
Ключ 9 - особовий № ув’язеного
9
10
12
13
14
15
16
2)Ключ 15 – Тип камери
15
7
8
6
3) Ключ 12 - Тип злочну і стаття за якою відбувається покарання
12
11
4)Ключ 8 – № кабінету
8
1
2
3
5)Ключ 3 – Персонал
3
4
5
Детермінанти: 3, 8,9,12,15
Виконання
1. Код main.php
<html>
<head>
<title>Головне меню</title>
</head>
<body>
<b>
<h3>1.Додати запис в базу даних: </h3>
<a href="inc/add/add_vjazen.html"> 1.1 Додати дані про в.язня</a><br>
<h3>2. Знайти :</h3>
<a href="inc/find/find_vjazen.html">2.1 Знайти дані про в.язня </a><br>
<h3>3.Видалити :</h3>
<a href="inc/del/del_vjazen.html">3.1 дані про в.язня </a><br>
<h3>4.Відредагувати запис: </h3>
<a href="inc/edit/edit_vjazen.html"> 4.1 дані про в.язня </a> <br>
</b>
<align="center">
<h5><p>Число відвідувань:
<?php
$filename = "counter";
$fp = fopen ($filename,"r");
if ($fp) {
$counter=fgets($fp,10);
fclose($fp);
} else {$counter=0;}
$counter++;
print $counter;
$fp=fopen($filename,"w");
if ($fp)
{
$ii=fputs($fp,$counter);
fclose($fp);
}
?>
</align>
</h5>
</body>
</html>
Вигляд main.php
/
2. Код вводу даних в БД
(html)
<html>
<head>
<title>Додати в.язня</title>
<body>
<form method=post action="nomer_vjazna.php">
<br><b>Введіть номер в.язня</b>
<br><input name="nomer_vjazna" size=10>
<br><br><b>Введіть П І Б ув.язненого:</b>
<br><input name="p_i_b_vjazna" size=50>
<br><br><b>Тип злочину і стаття за якою відбувається покарання:
<br><input name="tup_statja" size=50>
<br><br><b>Термін ув.язнення:</b>
<br><input name="termin" size=15>
<br><br><b>Можливість амністії:</b>
<br><input name="amnistija" size=10>
<br><br><b>Тип камери:</b>
<br><input name="tup_kameru" size=50>
<br><br><b>Дозвілля:</b>
<br><input name="dozvilja" size=50>
<br><br><input type="submit" value="Додати">
</form>
</body>
</html>
Код вводу даних в БД
(php)
<?
$hostname="localhost";
$username="root";
$password="";
$dbName="lab2";
$usertable="nomer_yvjazna";
$nomer_vjazna=$_POST["nomer_vjazna"];
$p_i_b_vjazna=$_POST["p_i_b_vjazna"];
$tup_zlochuny_statja=$_POST["tup_statja"];
$termin_yvjaznenna=$_POST["termin"];
$amnistija=$_POST["amnistija"];
$tup_kameru=$_POST["tup_kameru"];
$dozvilja=$_POST["dozvilja"];
if (!empty($_POST["nomer_vjazna"]) && !empty($_POST["p_i_b_vjazna"]) && !empty($_POST["tup_statja"]) && !empty($_POST["termin"]) && !empty($_POST["amnistija"]) && !empty($_POST["tup_kameru"])&& !empty($_POST["dozvilja"]))
{
MYSQL_CONNECT($hostname,$username,$password) OR DIE("Неможливо підключитись :) ");
MYSQL_SELECT_DB($dbName) or die("БД не існує");
$query="INSERT INTO $usertable VALUES ('$nomer_vjazna', '$p_i_b_vjazna', '$tup_statja', '$termin', '$amnistija', '$tup_kameru', '$dozvilja')";
$result=MYSQL_QUERY($query);
MYSQL_CLOSE();
print "Виконано!<br>";
} else { print "Заповніть всі поля!<br>";}
print "<a href='../../main.php'>Назад в меню</a>";
?>
Вигляд вводу даних в БД
/
3. Код пошуку даних в БД
(html)
<html>
<head>
<title>В.язень</title>
<body>
<form action="find_vjazen.php" method="post">
<b>Введiть номер в.язня<b>
<input type="text" name="nomer_vjazna" size=10>
<input type="submit" value="Пошук">
</form>
</body>
</html>
Код пошуку даних в БД
(php)
<?
$hostname="localhost";
$username="root";
$password=" ";
$dbName="lab2";
$usertable="nomer_yvjazna";
$nomer_vjazna=$_POST["nomer_vjazna"];
if (!empty($_POST["nomer_vjazna"]))
{
MYSQL_CONNECT($hostname,$username,$password) OR DIE("Неможливо підключитись");
MYSQL_SELECT_DB($dbName) or die("БД не існує ");
$query="select * from $usertable where nomer_vjazna like '$nomer_vjazna%'";
$result=mysql_query($query);
$number=mysql_numrows($result);
if($number==0)
{print "Немає даних про $nomer_vjazna в БД<br>";}
else{
print "Виконано <br>";
echo "<table border='1'>
<tr>
<th>nomer_vjazna</th>
<th>p_i_b_vjazna</th>
<th>tup_statja</th>
<th>termin</th>
<th>amnistija</th>
<th>tup_kameru</th>
<th>dozvilja</th>
</tr>";
while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['nomer_vjazna'] . "</td>";
echo "<td>" . $row['p_i_b_vjazna'] . "</td>";
echo "<td>" . $row['tup_zlochuny_statja'] . "</td>";
echo "<td>" . $row['termin_yvjaznenna'] . "</td>";
echo "<td>" . $row['amnistija'] . "</td>";
echo "<td>" . $row['tup_kameru'] . "</td>";
echo "<td>" . $row['dozvilja'] . "</td>";
echo "</tr>";
}
echo "</table>";
MYSQL_CLOSE();}
} else { print "Ви не ввели дані<br>";}
print "<a href='../../main.php'>Назад в меню</a>";
?>
Вигляд пошуку даних
/
/
4. Код видалення даних
(html)
<html>
<head>
<title>Видалення даних про в.язня</title>
<body>
<form action="del_vjazen.php" method="post">
<b>Введiть номер в.язня:<b>
<input type="text" name="nomer_vjazna" size=10>
<input type="submit" value="Видалити!">
</form>
</body>
</html>
Код видалення даних
(php)
<?
$hostname="localhost";
$username="root";
$password=" ";
$dbName="lab2";
$usertable="nomer_yvjazna";
$id_mark=$_POST["add_vjazev"];
MYSQL_CONNECT($hostname,$username,$password) OR DIE("Неможливо підключитись ");
MYSQL_SELECT_DB($dbName) or die("БД не існує");
$query="select * from $usertable where nomer_yvjazn='$add_yvjazn'";
$result=mysql_query($query);
if(mysql_numrows($result))
{
$query="delete from $usertable where nomer_vjazen='$nomer_vjazen'";
$result=MYSQL_QUERY($query);
MYSQL_CLOSE();
print "Виконано!<br>";
} else { print "Введіть правильні дані!<br>";}
print "<a href='../../main.php'>Назад в меню</a>";
?>
Вигляд видалення даних
/
5. Код редагування даних
(html)
<<html>
<head>
<title>Редагування даних:</title>
<body>
<form action="edit_vjazen.php" method="post">
<b>Введіть номер в.язня, дані для якого необхідно змінити:<b>
<br><input type="text" name="nomer_vjazna" size=10>
<input type="submit" value="ok">
</form>
</body>
</html></html>
Код редагування даних
(php)
<?
$hostname="localhost";
$username="root";
$password=" ";
$dbName="lab2";
$usertable="nomer_yvjazna";
mysql_connect($hostname,$username,$password) or die("Не можу під'єднатися ");
mysql_select_db("$dbName") or die("Не можу вибрати БД");
$inomer_vjazna=$_POST['nomer_yvjazna'];
$query="select * from $usertable where nomer_yvjazna='$nomer_yvjazna'";
$result=mysql_query($query);
$number=mysql_numrows($result);
if ($number==0)
{ print "Немає такого запису<br>"; }
else {
$nomer_vjazna=mysql_result($result,0,"nomer_vjazna");
$p_i_b_vjazna=mysql_result($result,0,"p_i_b_vjazna");
$tup_zlochuny_statja=mysql_result($result,0,"tup_statja");
$termin_yvjaznenna=mysql_result($result,0,"termin;");
$amnistija=mysql_result($result,0,"amnistija");
$tup_kameru=mysql_result($result,0,"tup_kameru");
$dozvilja=mysql_result($result,0,"dozvilja");
$query="delete from $usertable where nomer_vjazna='$nomer_vjazna'";
$result=mysql_query($query);
print "<form method=post action='nomer_yvjazna.php'>";
print "<br><b>Введіть номер в.язня</b>";
print "<br><input name='nomer_vjazna' value='$nomer_vjazna' size=10>";
print "<br><b>Введіть П І Б ув.язненого:</b>";
print "<br><input name='p_i_b_vjazna' value='$p_i_b_vjazna' size=50>";
print "<br><b>Тип злочину і стаття за якою відбувається покарання:</b>";
print "<br><input name='tup_zlochuny_statja' value='$tup_statja' size=50>";
print "<br><b>Термін ув.язнення:</b>";
print "<br><input name='termin_yvjaznenna' value='$termin' size=15> ";
print "<br><b>Можливість амністії:</b> ";
print "<br><input name='amnistija' value='$amnistija' size=10> ";
print "<br><b>Тип камери:</b> ";
print "<br><input name='tup_kameru' value='$tup_kameru' size=50> ";
print "<br><b>Дозвілля:</b> ";
print "<br><input name='dozvilja' value='$dozvilja' size=50> "
print "<br><br><input type='submit' value='Зареєструвати'>";
print "</form>";
}
?>
nomer_vjazna.php
<?
$hostname="localhost";
$username="root";
$password=" ";
$dbName="lab2";
$usertable="nomer_yvjazna";
$nomer_vjazna=$_POST['nomer_vjazna'];
$p_i_b_vjazna=$_POST['p_i_b_vjazna'];
$tup_zlochuny_statja=$_POST['tup_statja'];
$termin_yvjaznenna=$_POST['termin'];
$amnistija=$_POST['amnistija'];
$tup_kameru=$_POST['tup_kameru'];
$dozvilja=$_POST['dozvilja'];
MYSQL_CONNECT($hostname,$username,$password) OR DIE("Не можу під'єднатися");
MYSQL_SELECT_DB($dbName) or die("Не можу вибрати БД");
$query="INSERT INTO $usertable VALUES ('$nomer_vjazna', '$p_i_b_vjazna', '$tup_statja', '$termin', '$amnistija', '$tup_kameru', '$dozvilja')";
$result=MYSQL_QUERY($query);
MYSQL_CLOSE();
print "Запис введений в БД! <br>";
print "<a href='../../main.php'>Назад в меню</a>";
?>
Вигляд редагування даних
/
Висновок: У даній лабораторній роботі я навчився створювати пакети програм по створенню простої БД, її доповненню, пошуку, запису, видаленню запису і її редагуванню написані на мовах PHP та HTML.