Міністерство освіти і науки України
Національний Університет „Львівська політехніка”
Кафедра «Захист інформації»
Звіт
Про виконання лабораторної роботи №3
На тему:
“ Створення пакету для управління базою даних SQL засобами мови php ”
Завдання:
Необхідно створити пакет програм по створенню простої бази даних(БД),її доповненню, пошуку запису, видаленню запису і її редагуванню. Пакет програм повинен містити загальне меню по виконуваних діях в якому повинен бути встановлений лічильник відвідування цієї сторінки. Пакет програм повинен оперувати з графічними об'єктами (наприклад, фотографії однокурсників). Текст програм повинен бути написаний на мовах HTML і php. Безпосередня робота з базою даних повинна здійснюватися за допомогою пакету СУБД MySQL. Сервер MySQL повинен знаходитися на машині localhost (там же де і Web-сервер Apache). Програми на php повинні взаємодіяти з сервером MySQL за допомогою включених в php функцій взаємодії з MySQL. Розробити подібний пакет програм для БД, заданої у 1 та 2 лабораторній роботі.
Варіант - 22 - фестиваль естрадної музики
Структура пакету.
Каталог /etc/www/:
Main.php – файл, який реалізує головне меню, меню управління базою даних.
Counter – файл, в якому записано кількість відвідувань головної сторінки.
inc/ - каталог, що містить інші виконавчі файли
Каталог /etc/www/inc/:
Add/ - каталог, в якому містяться файл, що здійснюють додавання даних до бд.
Edit/ - каталог, в якому містяться файли, що здійснюють редагування інф-ії.
Del/ - каталог, в якому містяться файли для видалення інф-ії з бд.
Find/ - каталог, в якому містяться файли, що здійснюють пошук даних в бд.
Пояснення, щодо назв файлів у каталогах:
В кожному каталогу містяться файли, з назвами типу
[виконавча_функція]_[таблиця_бд].[розширення].
Тобто, файл add_group.php відповідає за додавання інформації про групу до бази даних, а файл del_producer.php за видалення даних про продюсера з бд.
Можливі префікси:
Add – додавання даних в БД.
Del – вилучення даних з БД.
Find – пошук даних в БД.
Edit – редагування даних в БД.
Можливі постфікси:
perfomens – інформація про виступ.
group – інформація про групу.
producer - інформація про продюсера.
Код виконавчих файлів:
Main.php
<html>
<head>
<title>Головне меню</title>
</head>
<body>
<b>
<h3>1.Додати запис в базу даних: </h3>
<a href="inc/add/add_perfomens.html"> 1.1 Додати виступ </a><br>
<a href="inc/add/add_group.html"> 1.2 Додати групу </a><br>
<a href="inc/add/add_producer.html"> 1.3 Додати продюсера </a><br>
<h3>2. Знайти запис по:</h3>
<a href="inc/find/find_ perfomens.html">2.1 Номер виступу </a><br>
<a href="inc/find/find_ group.html">2.2 Назвi групи </a><br>
<a href="inc/find/find_ producer.html">2.3 ID продюсера </a><br>
<h3>3.Видалити запис:</h3>
<a href="inc/del/del_ perfomens.html">3.1 Про виступ </a><br>
<a href="inc/del/del_ group.html">3.2 Про групу </a><br>
<a href="inc/del/del_ producer.html">3.3 Про продюсера </a><br>
<h3>4.Відредагувати запис: </h3>
<a href="inc/edit/edit_ perfomens.html"> 4.1 Про виступ </a> <br>
<a href="inc/edit/edit_ group.html"> 4.2 Про групу </a> <br>
<a href="inc/edit/edit_ producer.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_group.html
<html>
<head>
<title>Додати групу</title>
<body>
<form method=post action="add_group.php">
<br><b>Введіть назву групи:</b>
<br><input name="Name" value="" size=10>
<br><br><b>Введіть id продюсера:</b>
<br><input name="producer_id" value="" size=10>
<br><br><b>Введіть гонорар:
<br><input name="Gonorar" value="" size=10>
<br><br><b>Введіть ПІБ членів групи:</b>
<br><input name=" Musicians_Names " value="" size=50>
<br><br><b>Введіть стиль:</b>
<br><input name="Style" value="" size=10>
<br><br><b>Введіть назви пісень:</b>
<br><input name="Songs" value="" size=40>
<br><br><input type="submit" value="Зареєструвати групу %)">
</form>
</body>
</html>
Add_group.php
<?
$hostname="localhost";
$username="root";
$password="12345";
$dbName="lab2";
$usertable="tgroup";
MYSQL_CONNECT($hostname,$username,$password) OR DIE("неможливо підключитись :) ");
MYSQL_SELECT_DB($dbName) or die("немає такої БД (:");
$query="INSERT INTO $usertable VALUES ('','$Name','$producer_id','$Gonorar','$Musicians_Names','$Style','$Songs')";
$result=MYSQL_QUERY($query);
MYSQL_CLOSE();
print "Запис введено <br>";
print "<a href='../../main.php'>Назад в меню</a>";
?>
Add_perfomens.html
<html>
<head>
<title>Додати виступ</title>
<body>
<form method=post action="add_perfomens.php">
<br><b>Введіть обладнання:</b>
<br><input name="equipment" size=20>
<br><br><b>Введіть id групи:</b>
<br><input name="id" size=10>
<br><br><b>Введіть час початку виступу:
<br><input name="StartTime" size=10>
<br><br><b>Введіть час закінчення виступу:</b>
<br><input name="EndTime" size=10>
<br><br><input type="submit" value="ok">
</form>
</body>
</html>
Add_perfomens.php
<?
$hostname="localhost";
$username="root";
$password="12345";
$dbName="lab2";
$usertable="tperfomens";
MYSQL_CONNECT($hostname,$username,$password) OR DIE("неможливо підключитись :) ");
MYSQL_SELECT_DB($dbName) or die("немає такої БД (:");
$query="INSERT INTO $usertable VALUES ('', '$equipment', '$id', '$StartTime','$EndTime')";
$result=MYSQL_QUERY($query);
MYSQL_CLOSE();
print "Дані добавлено <br>";
print "<a href='../../main.php'>Назад в меню</a>";
?>
Add_producer.html
<html>
<head>
<title>Додати продюсера</title>
<body>
<form method=post action="add_producer.php">
<br><b>Введіть ПІБ продюсера:</b>
<br><input name="Name" value="" size=20>
<br><br><b>Введіть телефон:</b>
<br><input name="telephone"" size=10>
<br><br><input type="submit" value="Ok %)">
</form>
</body>
</html>
Add_producer.php
<?
$hostname="localhost";
$username="root";
$password="12345";
$dbName="lab2";
$usertable="tproducer";
MYSQL_CONNECT($hostname,$username,$password) OR DIE("неможливо підключитись :) ");
MYSQL_SELECT_DB($dbName) or die("немає такої БД (:");
$query="INSERT INTO $usertable VALUES ('', '$Name', '$telephone')";
$result=MYSQL_QUERY($query);
MYSQL_CLOSE();
print "Дані добавлено <br>";
print "<a href='../../main.php'>Назад в меню</a>";
?>
Del_group.php
<?
$hostname="localhost";
$username="root";
$password="12345";
$dbName="lab2";
$usertable="tgroup";
MYSQL_CONNECT($hostname,$username,$password) OR DIE("неможливо підключитись ");
MYSQL_SELECT_DB($dbName) or die("нема такої БД:");
$query="delete from $usertable where id='$id'";
$result=mysql_query($query);
MYSQL_CLOSE();
print "Запис видалено! <br>";
print "<a href='../../main.php'>Назад в меню</a>";
?>
Del_group.html
<html>
<head>
<title>Видалення даних про групу</title>
<body>
<form action="del_group.php" method="post">
<b>Введiть id групи:<b>
<input type="text" name="id" size=10>
<input type="submit" value="Видалити!">
</form>
</body>
</html>
Del_perfomens.php
<?
$hostname="localhost";
$username="root";
$password="12345";
$dbName="lab2";
$usertable="tperfomens";
MYSQL_CONNECT($hostname,$username,$password) OR DIE("неможливо підключитись ");
MYSQL_SELECT_DB($dbName) or die("нема такої БД");
$query="delete from $usertable where number='$number'";
$result=MYSQL_QUERY($query);
MYSQL_CLOSE();
print "Видалено <br>";
print "<a href='../../main.php'>Назад в меню</a>";
?>
Del_perfomens.html
<html>
<head>
<title>Видалення даних про виступ</title>
<body>
<form action="del_perfomens.php" method="post">
<b>Введiть номер виступу<b>
<input type="text" name="number" size=10>
<input type="submit" value="Видалити!">
</form>
</body>
</html>
Del_producer.php
<?
$hostname="localhost";
$username="root";
$password="12345";
$dbName="lab2";
$usertable="tproducer";
MYSQL_CONNECT($hostname,$username,$password) OR DIE("неможливо підключитись ");
MYSQL_SELECT_DB($dbName) or die("Нема такої БД:");
$query="delete from $usertable where id='$id'";
$result=MYSQL_QUERY($query);
MYSQL_CLOSE();
print "Видалено <br>";
print "<a href='../../main.php'>Назад в меню</a>";
?>
Del_producer.html
<html>
<head>
<title>Видалення даних про продюсера</title>
<body>
<form action="del_producer.php" method="post">
<b>Введiть id продюсера:<b>
<input type="text" name="id" size=20>
<input type="submit" value="Видалити!">
</form>
</body>
</html>
Edit_group.php
<?
$hostname="localhost";
$username="root";
$password="12345";
$dbName="lab2";
$usertable="tgroup";
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);
if ($number==0)
{
print "Ой, нема такого запису <br>";
print "<a href='../../main.php'>Назад в меню</a>";}
else
{
$id=mysql_result($result,0,"id");
$Name=mysql_result($result,0,"Name");
$producer_id=mysql_result($result,0," producer_id");
$Gonorar=mysql_result($result,0," Gonorar ");
$Musicians_Names=mysql_result($result,0,"Musicians_Names");
$Style=mysql_result($result,0,"Style");
$Songs=mysql_result($result,0,"Songs");
$query="delete from $usertable where id='$id'";
$result=mysql_query#@:;
print "<form method=post action='edit_ group2.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='producer_id' value='$producer_id' size=10>";
print "<br><br><b>Введiть гонорар</b>";
print "<br><input name='Gonorar' value='$Gonorar' size=10>";
print "<br><br><b>Введіть ПІБ членів групи:";
print "<br><input name='Musicians_Names' value='$Musicians_Names' size=50>";
print "<br><br><b>Введіть стиль:</b>";
print "<br><input name='Style' value='$Style' size=10>";
print "<br><br><b>Введiть назви пісень </b>";
print "<br><input name='Songs' value='$Songs' size=40>";
print "<br><br><input type='submit' value='Зареєструвати групу'>";
print "</form>";
}
?>
Edit_group.html
<html>
<head>
<title>Редагування даних про групу:</title>
<body>
<form action="edit_group.php" method="post">
<b>Введіть id групи, дані для якої необхідно змінити:<b>
<br><input type="text" name="id" size=10>
<input type="submit" value="ok">
</form>
</body>
</html>
Edit_perfomens.php
<?
$hostname="localhost";
$username="root";
$password="12345";
$dbName="lab2";
$usertable="tperfomens";
MYSQL_CONNECT($hostname,$username,$password) OR DIE("я втомився ");
MYSQL_SELECT_DB($dbName) or die("обiдня перерва (:");
$query="select * from $usertable where Number='$Number'";
$result=mysql_query($query);
$number=mysql_numrows($result);
print "Ок! <br>";
if ($number==0)
{
print "Ой, нема такого запису ^_^<br>";
print "<a href='../../main.php'>Назад в меню</a>";}
else
{
$Number=mysql_result($result,0,"Number");
$equipment=mysql_result($result,0,"equipment");
$StartTime=mysql_result($result,0,"StartTime");
$EndTime=mysql_result($result,0,"EndTime");
$query="delete from $usertable where Number='$Number'";
$result=mysql_query#@:;
print "<form method=post action='../add/add_perfomens.php'>";
print "<br><b>Введiть обладнання :</b>";
print "<br><input name='equipment' value='$equipment' size=20>";
print "<br><br><b>Введiть час початку виступу:</b>";
print "<br><input name='StartTime' value='$StartTime' size=10>";
print "<br><br><b>Введіть час закінчення виступу:";
print "<br><input name='EndTime' value='$EndTime' size=10>";
print "<br><br><input type='submit' value='Редагувати'>";
print "</form>";
}
?>
Edit_perfomens.html
<html>
<head>
<title>Редагування даних про виступ:</title>
<body>
<form action="edit_perfomens.php" method="post">
<b>Введіть номер виступу, дані для якого необхідно змінити:<b>
<br><input type="text" name="Number" size=10>
<input type="submit" value="ok">
</form>
</body>
</html>
Edit_producer.php
<?
$hostname="localhost";
$username="root";
$password="12345";
$dbName="lab2";
$usertable="tproducer";
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>";
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");
$query="delete from $usertable where id='$id'";
$result=mysql_query#@:;
print "<form method=post action='../add/add_producer.php'>";
print "<br><b>Введiть ПІБ продюсера:</b>";
print "<br><input name='Name' value='$Name' size=20>";
print "<br><br><b>Введiть телефон:</b>";
print "<br><input name=telephone' value='$telephone' size=10>";
print "<br><br><input type='submit' value='Редагувати'>";
print "</form>";
}
?>
Edit_producer.html
<html>
<head>
<title>Редагування даних про продюсера:</title>
<body>
<form action="edit_producer.php" method="post">
<b>Введіть id продюсера, дані для якого необхідно змінити:<b>
<br><input type="text" name="id" size=10>
<input type="submit" value="ok">
</form>
</body>
</html>
Find_group.php
<?
$hostname="localhost";
$username="root";
$password="12345";
$dbName="lab2";
$usertable="tgroup";
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>";
echo "<table border='1'>
<tr>
<th>id</th>
<th>Name</th>
<th>producer_id</th>
<th>Gonorar</th>
<th>Musicians_Names</th>
<th>Stile</th>
<th>Songs</th>
</tr>";
while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['id'] . "</td>";
echo "<td>" . $row['Name'] . "</td>";
echo "<td>" . $row['producer_id'] . "</td>";
echo "<td>" . $row['Musicians_Names'] . "</td>";
echo "<td>" . $row['Stile'] . "</td>";
echo "<td>" . $row['Songs'] . "</td>";
echo "</tr>";
}
echo "</table>";
MYSQL_CLOSE();
print "<a href='../../main.php'>Назад в меню</a>";
?>
Find_group.html
<html>
<head>
<title>Вибірка даних про групу</title>
<body>
<form action="find_group.php" method="post">
<b>Введiть назву групи:<b>
<input type="text" Name="Name" size=10>
<input type="submit" value="знайти... -_-">
</form>
</body>
</html>
Find_perfomens.php
<?
$hostname="localhost";
$username="root";
$password="12345";
$dbName="lab2";
$usertable="tperfomens";
MYSQL_CONNECT($hostname,$username,$password) OR DIE(" спробуй ще =)");
MYSQL_SELECT_DB($dbName) or die("а нема такого ); ");
$query="select * from $usertable where Number like '$Number%'";
$result=mysql_query($query);
$number=mysql_numrows($result);
print "Ок! <br>";
echo "<table border='1'>
<tr>
<th>Number</th>
<th>equipment</th>
<th>StartTime</th>
<th>EndTime</th>
</tr>";
while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['Number'] . "</td>";
echo "<td>" . $row['equipment'] . "</td>";
echo "<td>" . $row['StartTime'] . "</td>";
echo "<td>" . $row['EndTime'] . "</td>";
echo "</tr>";
}
echo "</table>";
MYSQL_CLOSE();
print "<a href='../../main.php'>Назад в меню</a>";
?>
Find_perfomens.html
<html>
<head>
<title>Вибірка даних по виступі</title>
<body>
<form action="find_perfomens.php" method="post">
<b>Введiть номер виступу<b>
<input type="text" name="Number" size=10>
<input type="submit" value="знайти... -_-">
</form>
</body>
</html>
Find_producer.php
<?
$hostname="localhost";
$username="root";
$password="12345";
$dbName="lab2";
$usertable="tproducer";
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>";
echo "<table border='1'>
<tr>
<th>id</th>
<th>Name</th>
<th>telephone</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 "</tr>";
}
echo "</table>";
MYSQL_CLOSE();
print "<a href='../../main.php'>Назад в меню</a>";
?>
Find_producer.html
<html>
<head>
<title>Виборка даних по продюсеру</title>
<body>
<form action="find_producer.php" method="post">
<b>Введiть id продюсера:<b>
<input type="text" name="id" 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 `tgroup` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`Name` tinytext NOT NULL,
`producer_id` int(5) NOT NULL,
`Gonorar` int(10) NOT NULL,
`Musicians_Names` tinytext NOT NULL,
`Style` tinytext NOT NULL,
`Songs` tinytext NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
INSERT INTO `tgroup` VALUES
( '','Chervone', '3','1500','Kuzmuch Petro Ivanovych, Ivanov Oleh Petrovych, Husin Nazar Olehovych','POP-ROCK','Vona, Kazka, Ptah');
INSERT INTO `tgroup` VALUES
('','xxx', '5','400','Petrenko Inna Vasylivna','POP','Lubov, Kalyna, Kozak, Ya i ty');
INSERT INTO `tgroup` VALUES
('', 'Kohani' ,'2','2000','Hnativ Olha Petrivna, Hnativ Iryna Petrivna','POP','Sestry, Kviten');
INSERT INTO `tgroup` VALUES
('', 'a4', '2','1000','Hopak Inan Volodymyrovych','POP','Peremoha nasha');
INSERT INTO `tgroup` VALUES
('','Kings', '1','600','Kit Roman Yevhenovych, Kruk Yuriy Nazarovych','POP-ROCK','Richka, Voda');
CREATE TABLE `tperfomens` (
`Number` int(10) NOT NULL auto_increment,
`Equipment` tinytext NOT NULL,
`id` int(10) NOT NULL,
`StartTime` varchar(200) NOT NULL,
`EndTime` varchar(200) NOT NULL,
PRIMARY KEY (`Number`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
INSERT INTO `tperfomens` VALUES
('', 'guitar, drums, 3 microfones', '1', '29-12-2009 17:00', '29-12-2009 17:10');
INSERT INTO `tperfomens` VALUES
('', '2 guitars, drums, 2 microfones ', '3', '29-12-2009 17:15', '29-12-2009 17:30');
INSERT INTO `tperfomens` VALUES
('', 'syntezator, microfone', '4', '29-12-2009 17:35', '29-12-2009 17:40');
INSERT INTO `tperfomens` VALUES
('', 'guitar, drums, 3 microfones ', '1', '29-12-2009 17:45', '29-12-2009 17:50');
INSERT INTO `tperfomens` VALUES
('', 'guitar, microfone', '2', '29-12-2009 17:55', '29-12-2009 18:15');
CREATE TABLE `tproducer` (
`id` int(5) NOT NULL AUTO_INCREMENT,
`Name` tinytext NOT NULL ,
`Telephone` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
INSERT INTO `tproducer` VALUES
('', 'Lys Orest Kyrylovych', '0961234567');
INSERT INTO `tproducer` VALUES
('', 'Kobin Vasyl Antonovych', '0937654321');
INSERT INTO `tproducer` VALUES
('', 'Bebeshko Petro Petrovych', '0971122334');
INSERT INTO `tproducer` VALUES
('', 'Horoh Ivan Ivanovych', '0362246173');
INSERT INTO `tproducer` VALUES
('', 'Smal Diana Olehivna', '0961287364');
SELECT * FROM tperfomens;
SELECT * FROM tgroup;
SELECT * FROM producer;
Висновок:
На цій лабораторній роботі я навчився працювати з БД SQL засобами мови PHP.