Міністерство освіти і науки України
Національний університет „Львівська політехніка”
Кафедра «Захисту інформації»
Звіт
Про виконання лабораторної роботи #3
На тему:
“ Створення пакету для управління базою даних SQL засобами мови php ”
Завдання:
Необхідно створити пакет програм по створенню простої бази даних(БД),її доповненню, пошуку запису, видаленню запису і її редагуванню. Пакет програм повинен містити загальне меню по виконуваних діях в якому повинен бути встановлений лічильник відвідування цієї сторінки. Пакет програм повинен оперувати з графічними об'єктами (наприклад, фотографії однокурсників). Текст програм повинен бути написаний на мовах HTML і php. Безпосередня робота з базою даних повинна здійснюватися за допомогою пакету СУБД MySQL. Сервер MySQL повинен знаходитися на машині localhost (там же де і Web-сервер Apache). Програми на php повинні взаємодіяти з сервером MySQL за допомогою включених в php функцій взаємодії з MySQL. Розробити подібний пакет програм для БД, заданої у 1 та 2 лабораторній роботі.
Варіант:
№
Назва
Примітки
2.
Радіобазар (Той, що на вул. Любінській)
довідка в Інеті
Структура пакету.
Каталог /etc/www/:
Main.php – файл, який реалізує головне меню, меню управління базою даних.
Counter – файл, в якому записано кількість відвідувань головної сторінки.
inc/ - каталог, що містить інші виконавчі файли
Каталог /etc/www/inc/:
Add/ - каталог, в якому містяться файл, що здійснюють додавання даних до бд.
Edit/ - каталог, в якому містяться файли, що здійснюють редагування інф-ії.
Del/ - каталог, в якому містяться файли для видалення інф-ії з бд.
Find/ - каталог, в якому містяться файли, що здійснюють пошук даних в бд.
Пояснення, щодо назв файлів у каталогах:
В кожному каталогу містяться файли, з назвами типу
[виконавча_функція]_[таблиця_бд].[розширення].
Тобто, файл add_pp.php відповідає за додавання інформації про ПП до бази даних, а файл del_it.php за видалення даних про майно з бд.
Можливі префікси:
Add – додавання даних в БД.
Del – вилучення даних з БД.
Find – пошук даних в БД.
Edit – редагування даних в БД.
Можливі постфікси:
PP – інформація про підприємця.
Det – інформація про деталь.
It - інформація про майно.
Код виконавчих файлів:
Main.php
<html>
<head>
<title>Головне меню</title>
</head>
<body>
<b>
<h3>1.Додати запис в базу даних: </h3>
<a href="inc/add/add_pp.html"> 1.1 Додати ПП </a><br>
<a href="inc/add/add_det.html"> 1.2 Додати деталь </a><br>
<a href="inc/add/add_it.html"> 1.3 Додати майно </a><br>
<h3>2. Знайти запис по:</h3>
<a href="inc/find/find_pp.html">2.1 ПП </a><br>
<a href="inc/find/find_det.html">2.2 Назвi деталi </a><br>
<a href="inc/find/find_it.html">2.3 ID майна </a><br>
<h3>3.Видалити запис:</h3>
<a href="inc/del/del_pp.html">3.1 Про ПП </a><br>
<a href="inc/del/del_det.html">3.2 Про Деталь </a><br>
<a href="inc/del/del_it.html">3.3 Про Майно </a><br>
<h3>4.Відредагувати запис: </h3>
<a href="inc/edit/edit_pp.html"> 4.1 Про ПП </a> <br>
<a href="inc/edit/edit_det.html"> 4.2 Про Деталь </a> <br>
<a href="inc/edit/edit_it.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_det.html
<html>
<head>
<title>Додати деталь</title>
<body>
<form method=post action="add_det.php">
<br><b>Введіть назву деталi:</b>
<br><input name="name" value="" size=10>
<br><br><b>Введіть цiну деталi:</b>
<br><input name="priсe" value="" size=10>
<br><br><b>Введіть ПП, що торгуэ:
<br><input name="sellerid" value="" size=10>
<br><br><b>Введіть кiлькiсть деталей:</b>
<br><input name="num" value="" size=20>
<br><br><input type="submit" value="Зареєструвати детальки %)">
</form>
</body>
</html>
Add_det.php
<?
$hostname="localhost";
$username="";
$password="";
$dbName="lab2";
$usertable="tdetails";
$name=$_POST["name"];
$telephone=$_POST["price"];
$place=$_POST["sellerid"];
$workd=$_POST["num"];
if (!empty($_POST["name"]) && !empty($_POST["price"]) && !empty($_POST["sellerid"]) && !empty($_POST["num"]))
{
MYSQL_CONNECT($hostname,$username,$password) OR DIE("неможливо підключитись :) ");
MYSQL_SELECT_DB($dbName) or die("немає такої БД (:");
$query="INSERT INTO $usertable VALUES ('','$name','$price','$sellerid','$num')";
$result=MYSQL_QUERY($query);
MYSQL_CLOSE();
print "Ок! <br>";
} else { print "дурко =Р<br>";}
print "<a href='../../main.php'>Назад в меню</a>";
?>
Add_pp.html
<html>
<head>
<title>Додати ПП</title>
<body>
<form method=post action="add_pp.php">
<br><b>Введіть ПIБ ПП:</b>
<br><input name="name" size=10>
<br><br><b>Введіть номер телефону ПП:</b>
<br><input name="telephone" size=10>
<br><br><b>Введіть торгове мiсце:
<br><input name="place" size=10>
<br><br><b>Введіть робочi днi:</b>
<br><input name="workd" size=10>
<br><br><input type="submit" value="ok">
</form>
</body>
</html>
Add_pp.php
<?
$hostname="localhost";
$username="";
$password="";
$dbName="lab2";
$usertable="tpp";
$name=$_POST["name"];
$telephone=$_POST["telephone"];
$place=$_POST["place"];
$workd=$_POST["workd"];
if (!empty($_POST["name"]) && !empty($_POST["place"]) && !empty($_POST["telephone"]) && !empty($_POST["workd"]))
{
MYSQL_CONNECT($hostname,$username,$password) OR DIE("неможливо підключитись :) ");
MYSQL_SELECT_DB($dbName) or die("немає такої БД (:");
$query="INSERT INTO $usertable VALUES ('', '$name', '$telephone', '$place', '$workd')";
$result=MYSQL_QUERY($query);
MYSQL_CLOSE();
print "Ок! <br>";
} else { print "дурко =Р<br>";}
print "<a href='../../main.php'>Назад в меню</a>";
?>
Add_it.html
<html>
<head>
<title>Додати майно</title>
<body>
<form method=post action="add_it.php">
<br><b>Введіть назву майна:</b>
<br><input name="name" value="" size=10>
<br><br><b>Введіть id власника:</b>
<br><input name="owner_id" value="" size=10>
<br><br><input type="submit" value="Зареєструвати майно %)">
</form>
</body>
</html>
Add_it.php
<?
$hostname="localhost";
$username="";
$password="";
$dbName="lab2";
$usertable="titems";
MYSQL_CONNECT($hostname,$username,$password) OR DIE("неможливо підключитись :) ");
MYSQL_SELECT_DB($dbName) or die("немає такої БД (:");
$result=MYSQL_QUERY($query);
MYSQL_CLOSE();
print "Ок! <br>";
print "<a href='../../main.php'>Назад в меню</a>";
?>
<?
$hostname="localhost";
$username="";
$password="";
$dbName="lab2";
$usertable="titems";
$name=$_POST["name"];
$telephone=$_POST["owner_id"];
if (!empty($_POST["name"]) && !empty($_POST["owner_id"]))
{
MYSQL_CONNECT($hostname,$username,$password) OR DIE("неможливо підключитись :) ");
MYSQL_SELECT_DB($dbName) or die("немає такої БД (:");
$query="INSERT INTO $usertable VALUES ('','$name','$owner_id')";
$result=MYSQL_QUERY($query);
MYSQL_CLOSE();
print "Ок! <br>";
} else { print "дурко =Р<br>";}
print "<a href='../../main.php'>Назад в меню</a>";
?>
Del_it.php
<?
$hostname="localhost";
$username="";
$password="";
$dbName="lab2";
$usertable="titems";
$id=$_POST["id"];
if (!empty($_POST["id"]))
{
MYSQL_CONNECT($hostname,$username,$password) OR DIE("я втомився ");
MYSQL_SELECT_DB($dbName) or die("обiдня перерва (:");
$query="delete from $usertable where id='$id'";
$result=MYSQL_QUERY($query);
MYSQL_CLOSE();
print "Ок! <br>";
} else { print "дурко =Р<br>";}
print "<a href='../../main.php'>Назад в меню</a>";
?>
Del_it.html
<html>
<head>
<title>Видалення даних про майно</title>
<body>
<form action="del_it.php" method="post">
<b>Введiть id майна для видалення:<b>
<input type="text" name="id" size=10>
<input type="submit" value="Видалити!">
</form>
</body>
</html>
Del_pp.php
<?
$hostname="localhost";
$username="";
$password="";
$dbName="lab2";
$usertable="tpp";
$name=$_POST["name"];
if (!empty($_POST["name"]))
{
MYSQL_CONNECT($hostname,$username,$password) OR DIE("я втомився ");
MYSQL_SELECT_DB($dbName) or die("обiдня перерва (:");
$query="delete from $usertable where name='$name'";
$result=MYSQL_QUERY($query);
MYSQL_CLOSE();
print "Ок! <br>";
} else { print "дурко =Р<br>";}
print "<a href='../../main.php'>Назад в меню</a>";
?>
Del_pp.html
<html>
<head>
<title>Видалення даних про ПП</title>
<body>
<form action="del_pp.php" method="post">
<b>Введiть ПIБ для видалення:<b>
<input type="text" name="name" size=10>
<input type="submit" value="Видалити!">
</form>
</body>
</html>
Del_det.php
<?
$hostname="localhost";
$username="";
$password="";
$dbName="lab2";
$usertable="tdetails";
$id=$_POST["id"];
if (!empty($_POST["id"]))
{
MYSQL_CONNECT($hostname,$username,$password) OR DIE("я втомився ");
MYSQL_SELECT_DB($dbName) or die("обiдня перерва (:");
$query="delete from $usertable where id='$id'";
$result=MYSQL_QUERY($query);
MYSQL_CLOSE();
print "Ок! <br>";
} else { print "дурко =Р<br>";}
print "<a href='../../main.php'>Назад в меню</a>";
?>
Del_det.html
<html>
<head>
<title>Видалення даних про деталь</title>
<body>
<form action="del_det.php" method="post">
<b>Введiть id деталi для видалення:<b>
<input type="text" name="id" size=10>
<input type="submit" value="Видалити!">
</form>
</body>
</html>
Edit_it.php
<?
$hostname="localhost";
$username="";
$password="";
$dbName="lab2";
$usertable="titems";
$id=$_POST["id"];
if (!empty($_POST["id"]))
{
MYSQL_CONNECT($hostname,$username,$password) OR DIE("я втомився ");
MYSQL_SELECT_DB($dbName) or die("обiдня перерва (:");
$query="select * from $usertable where id='$id'";
$result=mysql_query($query);
$number=mysql_numrows($result);
print "Ок! <br>";
} else { print "дурко =Р<br>";}
if ($number==0)
{
print "Ой, нема такого запису ^_^<br>";
print "<a href='../../main.php'>Назад в меню</a>";}
else
{
$id=mysql_result($result,0,"id");
$name=mysql_result($result,0,"name");
$owner_id=mysql_result($result,0,"owner_id");
$query="delete from $usertable where id='$id'";
$result=mysql_query#@:;
print "<form method=post action='../add/add_it.php'>";
print "<br><b>Введiть назву майна:</b>";
print "<br><input name='name' value='$name' size=10>";
print "<br><br><b>Введiть id власника:</b>";
print "<br><input name='owner_id' value='$owner_id' size=10>";
print "<br><br><input type='submit' value='Редагувати'>";
print "</form>";
}
?>
Edit_it.html
<html>
<head>
<title>Редагування даних про Майно:</title>
<body>
<form action="edit_it.php" method="post">
<b>Введіть id майна, дані для якого необхідно змінити:<b>
<br><input type="text" name="id" size=10>
<input type="submit" value="ok">
</form>
</body>
</html>
Edit_pp.php
<?
$hostname="localhost";
$username="";
$password="";
$dbName="lab2";
$usertable="tpp";
$id=$_POST["id"];
if (!empty($_POST["id"]))
{
MYSQL_CONNECT($hostname,$username,$password) OR DIE("я втомився ");
MYSQL_SELECT_DB($dbName) or die("обiдня перерва (:");
$query="select * from $usertable where id='$id'";
$result=mysql_query($query);
$number=mysql_numrows($result);
print "Ок! <br>";
} else { print "дурко =Р<br>";}
if ($number==0)
{
print "Ой, нема такого запису ^_^<br>";
print "<a href='../../main.php'>Назад в меню</a>";}
else
{
$id=mysql_result($result,0,"id");
$name=mysql_result($result,0,"name");
$telephone=mysql_result($result,0,"telephone");
$place=mysql_result($result,0,"place");
$workd=mysql_result($result,0,"workd");
$query="delete from $usertable where id='$id'";
$result=mysql_query#@:;
print "<form method=post action='../add/add_pp.php'>";
print "<br><b>Введiть iм'я ПП:</b>";
print "<br><input name='name' value='$name' size=10>";
print "<br><br><b>Введiть телефон:</b>";
print "<br><input name='telephone' value='$telephone' size=10>";
print "<br><br><b>Введіть торгове мiсце ПП:";
print "<br><input name='place' value='$place' size=10>";
print "<br><br><b>Введiть робочi днi:</b>";
print "<br><input name='workd' value='$workd' size=10>";
print "<br><br><input type='submit' value='Редагувати'>";
print "</form>";
}
?>
Edit_pp.html
<html>
<head>
<title>Редагування даних про ПП:</title>
<body>
<form action="edit_pp.php" method="post">
<b>Введіть id ПП, дані для якого необхідно змінити:<b>
<br><input type="text" name="id" size=10>
<input type="submit" value="ok">
</form>
</body>
</html>
Edit_det.php
<?
$hostname="localhost";
$username="";
$password="";
$dbName="lab2";
$usertable="tdetails";
$id=$_POST["id"];
if (!empty($_POST["id"]))
{
MYSQL_CONNECT($hostname,$username,$password) OR DIE("я втомився ");
MYSQL_SELECT_DB($dbName) or die("обiдня перерва (:");
$query="select * from $usertable where id='$id'";
$result=mysql_query($query);
$number=mysql_numrows($result);
print "Ок! <br>";
} else { print "дурко =Р<br>";}
if ($number==0)
{
print "Ой, нема такого запису ^_^<br>";
print "<a href='../../main.php'>Назад в меню</a>";}
else
{
$id=mysql_result($result,0,"id");
$name=mysql_result($result,0,"name");
$price=mysql_result($result,0,"price");
$sellerid=mysql_result($result,0,"sellerid");
$num=mysql_result($result,0,"num");
$query="delete from $usertable where id='$id'";
$result=mysql_query#@:;
print "<form method=post action='../add/add_det.php'>";
print "<br><b>Введiть назву деталi:</b>";
print "<br><input name='name' value='$name' size=10>";
print "<br><br><b>Введiть цiну:</b>";
print "<br><input name='price' value='$price' size=10>";
print "<br><br><b>Введіть id ПП, що торгуэ:";
print "<br><input name='sellerid' value='$sellerid' size=10>";
print "<br><br><b>Введите к-ть деталей в наявностi:</b>";
print "<br><input name='num' value='$num' size=10>";
print "<br><br><input type='submit' value='Редагувати'>";
print "</form>";
}
?>
Edit_det.html
<html>
<head>
<title>Редагування даних про Деталi:</title>
<body>
<form action="edit_det.php" method="post">
<b>Введіть id деталi, дані для якої необхідно змінити:<b>
<br><input type="text" name="id" size=10>
<input type="submit" value="ok">
</form>
</body>
</html>
Find_it.php
<?
$hostname="localhost";
$username="";
$password="";
$dbName="lab2";
$usertable="titems";
$id=$_POST["id"];
if (!empty($_POST["id"]))
{
MYSQL_CONNECT($hostname,$username,$password) OR DIE(" спробуй ще =)");
MYSQL_SELECT_DB($dbName) or die("а нема такого ); ");
$query="select * from $usertable where id='$id'";
$result=mysql_query($query);
$number=mysql_numrows($result);
print "Ок! <br>";
} else { print "дурко =Р<br>";}
echo "<table border='1'>
<tr>
<th>id</th>
<th>name</th>
<th>owner_id</th>
</tr>";
while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['id'] . "</td>";
echo "<td>" . $row['name'] . "</td>";
echo "<td>" . $row['owner_id'] . "</td>";
echo "</tr>";
}
echo "</table>";
MYSQL_CLOSE();
print "<a href='../../main.php'>Назад в меню</a>";
?>
Find_it.html
<html>
<head>
<title>Виборка даних по Деталь</title>
<body>
<form action="find_it.php" method="post">
<b>Введiть id майна:<b>
<input type="text" name="id" size=10>
<input type="submit" value="знайти... -_-">
</form>
</body>
</html>
Find_pp.php
<?
$hostname="localhost";
$username="";
$password="";
$dbName="lab2";
$usertable="tpp";
$name=$_POST["name"];
if (!empty($_POST["name"]))
{
MYSQL_CONNECT($hostname,$username,$password) OR DIE(" спробуй ще =)");
MYSQL_SELECT_DB($dbName) or die("а нема такого ); ");
$query="select * from $usertable where name like '$name%'";
$result=mysql_query($query);
$number=mysql_numrows($result);
print "Ок! <br>";
} else { print "дурко =Р<br>";}
echo "<table border='1'>
<tr>
<th>id</th>
<th>name</th>
<th>telephone</th>
<th>place</th>
<th>workd</th>
</tr>";
while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['id'] . "</td>";
echo "<td>" . $row['name'] . "</td>";
echo "<td>" . $row['telephone'] . "</td>";
echo "<td>" . $row['place'] . "</td>";
echo "<td>" . $row['workd'] . "</td>";
echo "</tr>";
}
echo "</table>";
MYSQL_CLOSE();
print "<a href='../../main.php'>Назад в меню</a>";
?>
Find_pp.html
<html>
<head>
<title>Виборка даних по ПП</title>
<body>
<form action="find_pp.php" method="post">
<b>Введiть П.І.Б.<b>
<input type="text" name="name" size=10>
<input type="submit" value="знайти... -_-">
</form>
</body>
</html>
Find_det.php
<?
$hostname="localhost";
$username="";
$password="";
$dbName="lab2";
$usertable="tdetails";
$name=$_POST["name"];
if (!empty($_POST["name"])) {
MYSQL_CONNECT($hostname,$username,$password) OR DIE(" спробуй ще =)");
MYSQL_SELECT_DB($dbName) or die("а нема такого ); ");
$query="select * from $usertable where name like '$name%'";
$result=mysql_query($query);
$number=mysql_numrows($result);
print "Ок! <br>";
} else { print "дурко =Р<br>";}
echo "<table border='1'>
<tr>
<th>id</th>
<th>name</th>
<th>price</th>
<th>sellerid</th>
<th>num</th>
</tr>";
while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['id'] . "</td>";
echo "<td>" . $row['name'] . "</td>";
echo "<td>" . $row['price'] . "</td>";
echo "<td>" . $row['sellerid'] . "</td>";
echo "<td>" . $row['num'] . "</td>";
echo "</tr>";
}
echo "</table>";
MYSQL_CLOSE();
print "<a href='../../main.php'>Назад в меню</a>";
?>
Find_det.html
<html>
<head>
<title>Виборка даних по Деталь</title>
<body>
<form action="find_det.php" method="post">
<b>Введiть назву деталi:<b>
<input type="text" name="name" size=10>
<input type="submit" value="знайти... -_-">
</form>
</body>
</html>
Нагадаємо, що база даних створювалась наступним скриптом:
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
CREATE DATABASE `lab2` DEFAULT CHARACTER SET latin1;
USE `lab2`;
CREATE TABLE IF NOT EXISTS `tdetails` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`Name` tinytext,
`price` double DEFAULT NULL,
`sellerid` int(5) DEFAULT NULL,
`num` int(8) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;
INSERT INTO `tdetails` (`id`, `Name`, `price`, `sellerid`, `num`) VALUES
(1, 'diod', 1.2, 4, 120),
(2, 'lamp', 10, 3, 20),
(3, 'lamp', 0.8, 1, 23),
(4, 'varistor', 5.6, 5, 0),
(5, 'rezistor', 1, 1, 13);
CREATE TABLE IF NOT EXISTS `titems` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`Name` tinytext,
`owner_id` int(5) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;
INSERT INTO `titems` (`id`, `Name`, `owner_id`) VALUES
(1, 'lamp', 1),
(2, 'lamp', 3),
(3, 'cup', 1),
(4, 'table', 5),
(5, 'table', 4);
CREATE TABLE IF NOT EXISTS `tpp` (
`id` int(5) NOT NULL AUTO_INCREMENT,
`Name` tinytext,
`Telephone` tinytext,
`place` int(5) DEFAULT NULL,
`workd` tinytext,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;
INSERT INTO `tpp` (`id`, `Name`, `Telephone`, `place`, `workd`) VALUES
(1, 'Glunchak Ivan Mukolajovuch', '0931234567', 13, 'mon wed'),
(2, 'Bufan Igor Jurijovich', '0937654321', 3, 'mon sat'),
(3, 'Bankovskuj Vitalij Viktorovuch', '0971122334', 67, 'wed sat'),
(4, 'Kyzmuch Roman Mukolajovuch', '0362246173', 5, 'sat'),
(5, 'Jemec Bogdan Stepanovuch', '0961287364', 1, 'fri');
Висновок:
На цій лабораторній роботі я навчився працювати з БД SQL засобами мови PHP.