МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
ІКТА
кафедра ЗІ
З В І Т
до лабораторної роботи №3
з курсу: «Бази даних та знань»
на тему: «Проектування реляційної бази даних»
Варіант 23
Мета роботи: набути практичних навиків в створені запитів на мові SQL для створення, внесення та вибірки даних із таблиць, створення баз даних та таблиць.
ЗАВДАННЯ
Варіант 23
Перепис населення
Структура пакету.
Каталог /etc/www/:
Main.php – файл, який реалізує головне меню, меню управління базою даних.
Counter – файл, в якому записано кількість відвідувань головної сторінки.
inc/ - каталог, що містить інші виконавчі файли
Каталог /etc/www/inc/:
Add/ - каталог, в якому містяться файл, що здійснюють додавання даних до бд.
Edit/ - каталог, в якому містяться файли, що здійснюють редагування інф-ії.
Del/ - каталог, в якому містяться файли для видалення інф-ії з бд.
Find/ - каталог, в якому містяться файли, що здійснюють пошук даних в бд.
Пояснення, щодо назв файлів у каталогах:
В кожному каталогу містяться файли, з назвами типу
[виконавча_функція]_[таблиця_бд].[розширення].
Тобто, файл add_zamovlenja.php відповідає за додавання інформації про замовлення до бази даних, а файл del_idzamo.php за видалення даних про замовника з бд.
Можливі префікси:
Add – додавання даних в БД.
Del – вилучення даних з БД.
Find – пошук даних в БД.
Edit – редагування даних в БД.
Код виконавчих файлів:
Main.php
<html>
<head>
<title>Головне меню</title>
</head>
<body>
<b>
<h3>1.Додати запис в базу даних: </h3>
<a href="inc/add/add_zamovlenja.html"> 1.1 Додати замовлення </a><br>
<a href="inc/add/add_adress.html"> 1.2 Додати відомості про будівлю </a><br>
<a href="inc/add/add_idker.html"> 1.3 Додати керуючого проектом </a><br>
<a href="inc/add/add_idzamo.html"> 1.4 Додати замовника </a><br>
<h3>2. Знайти :</h3>
<a href="inc/find/find_zamovlenja.html">2.1 Замовлення </a><br>
<a href="inc/find/find_adress.html">2.2 Відомості про будівлю </a><br>
<a href="inc/find/find_idker.html">2.3 Керівника </a><br>
<a href="inc/find/find_idzamo.html">2.4 Замовника </a><br>
<h3>3.Видалити :</h3>
<a href="inc/del/del_zamovlenja.html">3.1 Замовлення </a><br>
<a href="inc/del/del_adress.html">3.2 Відомості про будівлю </a><br>
<a href="inc/del/del_idker.html">3.3 Керівника </a><br>
<a href="inc/del/del_idzamo.html">3.3 Замовника </a><br>
<h3>4.Відредагувати запис: </h3>
<a href="inc/edit/edit_zamovlenja.html"> 4.1 Про замовлення </a> <br>
<a href="inc/edit/edit_adress.html"> 4.2 Про будівлю </a> <br>
<a href="inc/edit/edit_idker.html"> 4.3 Про керівника </a> <br>
<a href="inc/edit/edit_idzamo.html"> 4.3 Про замовника </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>
Add_adress.html
<html>
<head>
<title>Додати відомості про архітектуру</title>
<body>
<form method=post action="add_adress.php">
<br><b>Адрес:</b>
<br><input name="adress" value="" size=10>
<br><br><b>Рік:</b>
<br><input name="rik" value="" size=10>
<br><br><b>Стиль:</b>
<br><input name="stul" value="" size=10>
<br><br><b>Поверхи:</b>
<br><input name="poverhu" value="" size=10>
<br><br><b>Площа:</b>
<br><input name="ploscha" value="" size=10>
<br><br><input type="submit" value="Додати">
</form>
</body>
</html>
Add_adress.php
<?
$hostname="localhost";
$username="root";
$password="";
$dbName="restavracija";
$usertable="adress";
$adress=$_POST["adress"];
$rik=$_POST["rik"];
$stul=$_POST["stul"];
$poverhu=$_POST["poverhu"];
$ploscha=$_POST["ploscha"];
if (!empty($_POST["adress"]) && !empty($_POST["rik"]) && !empty($_POST["stul"]) && !empty($_POST["poverhu"]) && !empty($_POST["ploscha"]))
{
MYSQL_CONNECT($hostname,$username,$password) OR DIE("Неможливо підключитись");
MYSQL_SELECT_DB($dbName) or die("БД не існує");
$query="INSERT INTO $usertable VALUES ('$adress','$rik','$stul','$poverhu','$ploscha')";
$result=MYSQL_QUERY($query);
MYSQL_CLOSE();
print "Виконано! <br>";
} else { print "Заповніть всі поля!<br>";}
print "<a href='../../main.php'>Назад в меню</a>";
?>
Find_adress.html
<html>
<head>
<title>Дані про будівлю</title>
<body>
<form action="find_adress.php" method="post">
<b>Введiть адрес:<b>
<input type="text" name="adress" size=10>
<input type="submit" value="Пошук">
</form>
</body>
</html>
Find_adress.php
<?
$hostname="localhost";
$username="root";
$password="";
$dbName="restavracija";
$usertable="adress";
$adress=$_POST["adress"];
if (!empty($_POST["adress"]))
{
MYSQL_CONNECT($hostname,$username,$password) OR DIE("Неможливо підключитись");
MYSQL_SELECT_DB($dbName) or die("БД не існує");
$query="select * from $usertable where adress='$adress'";
$result=mysql_query($query);
$number=mysql_numrows($result);
if($number==0)
{print "Немає даних про $adress в БД<br>";}
else{
print "Виконано <br>";
echo "<table border='1'>
<tr>
<th>adress</th>
<th>rik</th>
<th>stul</th>
<th>poverhu</th>
<th>ploscha</th>
</tr>";
while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['adress'] . "</td>";
echo "<td>" . $row['rik'] . "</td>";
echo "<td>" . $row['stul'] . "</td>";
echo "<td>" . $row['poverhu'] . "</td>";
echo "<td>" . $row['ploscha'] . "</td>";
echo "</tr>";
}
echo "</table>";
MYSQL_CLOSE();}
} else { print "Ви не ввели дані<br>";}
print "<a href='../../main.php'>Назад в меню</a>";
?>
Edit_adress.html
<html>
<head>
<title>Редагування даних про будівлю:</title>
<body>
<form action="edit_adress.php" method="post">
<b>Введіть адрес, дані для якого необхідно змінити:<b>
<br><input type="text" name="adress" size=10>
<input type="submit" value="ok">
</form>
</body>
</html>
Edit_adress.php
<?
$hostname="localhost";
$username="root";
$password="";
$dbName="restavracija";
$usertable="adress";
mysql_connect($hostname,$username,$password) or die("Не можу під'єднатися ");
mysql_select_db("$dbName") or die("Не можу вибрати БД");
$adress=$_POST['adress'];
$query="select * from $usertable where adress='$adress'";
$result=mysql_query($query);
$number=mysql_numrows($result);
if ($number==0)
{ print "Немає такого запису<br>"; }
else {
$adress=mysql_result($result,0,"adress");
$rik=mysql_result($result,0,"rik");
$stul=mysql_result($result,0,"stul");
$poverhu=mysql_result($result,0,"poverhu");
$ploscha=mysql_result($result,0,"ploscha");
$query="delete from $usertable where adress='$adress'";
$result=mysql_query($query);
print "<form method=post action='adress.php'>";
print "<br><b>Адрес:</b>";
print "<br><input name='adress' value='$adress' size=30>";
print "<br><b>Рік:</b>";
print "<br><input name='rik' value='$rik' size=30>";
print "<br><b>Стиль:</b>";
print "<br><input name='stul' value='$stul' size=30>";
print "<br><b>Поверхи:</b>";
print "<br><input name='poverhu' value='$poverhu' size=30> ";
print "<br><b>Площа:</b> ";
print "<br><input name='ploscha' value='$ploscha' size=15> ";
print "<br><br><input type='submit' value='Зареєструвати'>";
print "</form>";
}
?>
adress.php
<?
$hostname="localhost";
$username="root";
$password="";
$dbName="restavracija";
$usertable="adress";
$adress=$_POST['adress'];
$rik=$_POST['rik'];
$stul=$_POST['stul'];
$poverhu=$_POST['poverhu'];
$ploscha=$_POST['ploscha'];
MYSQL_CONNECT($hostname,$username,$password) OR DIE("Не можу під'єднатися");
MYSQL_SELECT_DB($dbName) or die("Не можу вибрати БД");
$query="INSERT INTO $usertable VALUES ('$adress','$rik','$stul','$poverhu','$ploscha')";
$result=MYSQL_QUERY($query);
MYSQL_CLOSE();
print "Запис введений в БД! <br>";
print "<a href='../../main.php'>Назад в меню</a>";
?>
Del_adress.html
<html>
<head>
<title>Видалення даних будівлю</title>
<body>
<form action="del_adress.php" method="post">
<b>Введiть адрес для видалення:<b>
<input type="text" name="adress" size=10>
<input type="submit" value="Видалити!">
</form>
</body>
</html>
Del_adress.php
<?
$hostname="localhost";
$username="root";
$password="";
$dbName="restavracija";
$usertable="adress";
$adress=$_POST["adress"];
MYSQL_CONNECT($hostname,$username,$password) OR DIE("Неможливо підключитись ");
MYSQL_SELECT_DB($dbName) or die("БД не існує");
$query="select * from $usertable where adress='$adress'";
$result=mysql_query($query);
if(mysql_numrows($result))
{
$query="delete from $usertable where adress='$adress'";
$result=MYSQL_QUERY($query);
print "Виконано!<br>";
} else { print "Введіть правильні дані!<br>";}
MYSQL_CLOSE();
print "<a href='../../main.php'>Назад в меню</a>";
?>
Висновок: На цій лабораторній роботі я навчився працювати з БД SQL засобами мови PHP.