
- •Оглавление
- •Постановка задачі
- •Мета створення
- •Призначення системи
- •Вимоги до програми
- •Програмно-технічні засоби
- •Анотація
- •Структура об’єктів і зв’язків предметної області
- •Опис структури проекту
- •Керівництво користувача
- •Основна інформація
- •Головна сторінка
- •Сторінка з таблицею менеджерів
- •Сторінка з таблицею товарів
- •Сторінка з таблицею складу
- •Сторінка користувачів сайту
- •Сторінка покупців
- •Сторінка попередніх замовлень
- •Сторінка замовлень
- •Сторінка зі списком товарів для покупки
- •Сторінка з інформацією про товар
- •Код MySql
- •Створення резервної копії бази даних.
- •Висновок
- •Використана література
- •Додаток
- •Сторінки рhp програми де використовуються sql запити.
Створення резервної копії бази даних.
За допомогою phpmyadmin
Входимо в phpMyAdmin. У вікні, ви побачите свої бази даних.
Натискаємо кнопку «експорт».
У наступному вікні внизу сторінки вибираємо вид архіву, натискаємо ОК, і вказуємо, куди зберегти архів.
Резервне копіювання бази даних за допомогою плагіна WordPress Database Backup
Після установки та активації плагіна, в адмінці сайту відкрийте:
Інструменти - Архівація бази даних
і налаштуйте заплановану архівацію. Резервні копії бази даних будуть приходити на зазначений e-mail.
Висновок
Розглянувши можливості створеної програмної одиниці можна сказати, що вона задовольняє поставленій задачі. В розробленій програмі присутні наступні можливості:
Перегляд інформації про товари у зручній формі та використання пошуку і фільтрів
Автоматизована обробка запитів від покупців
Автоматизоване адміністрування сайту
Розрахунок рейтингу менеджерів
В програмі присутні тригери, процедури та функції для автоматизації роботи. Також наявні динамічні SQL і різноманітні виключні ситуації і їх обробники. Хоча MySQL не містить ієрархічних запитів, проте присутня ієрархічна таблиця та функції і вибірки, які можуть реалізувати роботу з даною таблицею в необхідній мірі. Також наявна робота з транзакціями. Відповідно можна стверджувати, що дана програма в достатній мірі реалізує можливість замовлення товарів та обробку замовлень через мережу “Інтернет”.
Використана література
MySQL. Просто и понятно
http://phpfaq.ru/mysql
Все о PHP, MySQL и не только
http://php.su/
Работа с БД на PHP
http://php-myadmin.ru/
Базы данных :: MySQL
http://citforum.ru/database/mysql.shtml
Все прo SQL базы данных
http://www.sql.ru/
Додаток
Сторінки рhp програми де використовуються sql запити.
login.php
<?php
require_once 'users.php';
session_start();
$user = $_SESSION['user'];
$user->db_connect();
$login = $_POST['login'];
$password = $_POST['password'];
if(!strlen($login))
$head = "location: Index.php?log_err=empty_login";
else if(!strlen($password))
$head = "location: Index.php?log_err=empty_password";
else
{
$sql = "SELECT user_id,status FROM user WHERE login='".$login."' AND password='".$password."'";
$result = mysql_query($sql);
if(!@mysql_num_rows($result))
$head = "location: Index.php?log_err=user_not_exist";
else
{
$user_data = mysql_fetch_array($result);
if(!strcmp($user_data['status'],'user'))
$user = new defined_user($login,$password,$user_data['user_id']);
else if(!strcmp($user_data['status'],'maneger'))
$user = new maneger($login,$password,$user_data['user_id']);
else if(!strcmp($user_data['status'],'admin'))
$user = new admin($login,$password,$user_data['user_id']);
$_SESSION['user'] = $user;
$_SESSION['status'] = $user_data['status'];
$head = "location: Index.php";
}
}
mysql_close();
header($head);
?>
users.php
<?php
$firm_id; #Глобальна змінна - код фірми
#Абстрактний клас від якого начлідуються всі види користувачів
abstract class users
{
abstract function db_connect(); #Функція для під'єднання до субд mysql
abstract function greeting($log_err); #Функція яка виводить привітання або форму для залогінення
#Визначає назву та код усіх класів і видів товарів
function product_types(&$product_classes_id,&$product_classes_num,&$product_classes,&$product_types_num)
{
$this->db_connect();
$sql_class = "select product_id,title from product where father_id=0";
$res_class = mysql_query($sql_class);
$product_classes_num = mysql_num_rows($res_class);
for($i=0;$i<$product_classes_num;$i++)
{
$j = 0;
$fetch = mysql_fetch_array($res_class);
$product_classes[$i][$j] = $fetch['title'];
$product_classes_id[$i][$j] = $fetch['product_id'];
$sql_types = "select product_id,title from product where father_id=".$product_classes_id[$i][$j];
$res_types = mysql_query($sql_types);
$product_types_num[$i] = mysql_num_rows($res_types);
while($j < $product_types_num[$i])
{
$j++;
$fetch = mysql_fetch_array($res_types);
$product_classes[$i][$j] = $fetch['title'];
$product_classes_id[$i][$j] = $fetch['product_id'];
}
}
}
#Виводить класи і види товарів
function out_product_types()
{
$this->product_types($product_classes_id,$product_classes_num,$product_classes,$product_types_num);
echo "<tr>";
for($i=0;$i<$product_classes_num;$i++)
{
if(($i+1 % 4) == 0)
echo "</tr><tr>";
echo "<td valign='top' align='left'>";
echo "<b><u>".$product_classes[$i][0]."</u></b>";
for($j=1;$j<=$product_types_num[$i];$j++)
{
echo "<br><a style='text-decoration: none' href=product_list.php?type=".$product_classes_id[$i][$j].">".$product_classes[$i][$j]."</a>";
}
echo "</td>";
}
echo "</tr>";
}
#Визначає назви і коди фірм певного виду товарів
function firms($product_type_id,&$firm_title,&$firm_id)
{
$this->db_connect();
$sql = "SELECT title,product_id FROM product WHERE father_id=".$product_type_id;
$result = mysql_query($sql);
for($i = 0;$i<mysql_num_rows($result);$i++)
{
$firm_inf = mysql_fetch_array($result);
$firm_title[$i] = $firm_inf['title'];
$firm_id[$i] = $firm_inf['product_id'];
}
}
#Виводить назви фірм як гіперпосилання з їх кодами
function out_firms($product_type_id)
{
global $firm_id;
$this->firms($product_type_id,$firm_title,$firm_id);
$number_of_firms = count($firm_id);
for($i=0;$i<$number_of_firms;$i++)
{
echo "<a style='text-decoration: none' href='product_list.php?type=".$product_type_id."&firm_id=".$firm_id[$i]."'>".$firm_title[$i]."</a><br>";
}
}
#Виводить список продуктів у зручному для користувача вигляді(Назва, код, картинка, короткий опис, ціна, наявність на складі)
function out_product_list($product_type_id,$firm_id)
{
if($_GET['firm_id'])
$firm_id = array($_GET['firm_id']);
else
global $firm_id;
$this->db_connect();
$number_of_firms = count($firm_id);
for($i=0;$i<$number_of_firms;$i++)
{
$sql = "SELECT product_id,title,small_description FROM product WHERE father_id=".$firm_id[$i];
$result = mysql_query($sql);
for($j=0;$j<mysql_num_rows($result);$j++)
{
$product = mysql_fetch_array($result);
$product_id = $product['product_id'];
$title = $product['title'];
$small_description = $product['small_description'];
$result1 = mysql_query("SELECT price FROM storage_item WHERE product_id=".$product_id);
if(@mysql_num_rows($result1))
{
$storage_item = mysql_fetch_array($result1);
$price = $storage_item['price'];
$availability = "Є в наявності";
}
else
$availability = "Немає в наявності";
echo "<tr><td rowspan='6' valign='top'><img width='256' heigth='256' src=image.php?product_id=".$product_id."></td>";
echo "<td><a style='font-size: 40px' href='item.php?type=".$product_type_id."&id=".$product_id."'>".$title."</a></td></tr>";
echo "<tr><td style='color: grey'>Код товару: ".$product_id."</td></tr>";
echo "<tr><td style='font-family: serif; font-size: 25px'>".$small_description."</td></tr>";
echo "<tr><td style='font-family: serif; font-size: 25px; color: #10df10'>".$availability."</td></tr>";
if(@mysql_num_rows($result1))
{
echo "<tr><td style='font-family: serif; font-size: 45px; color: #10df10'>".$price."грн</td></tr>";
echo "<tr><td><input type='button' class='button_color button_text' style='height: 30px' value='Купити' onClick=window.location.href='buy.php?product_id=".$product_id."'></td></tr>";
}
echo "<tr><td><br><br></td></tr><tr><td><br><br></td></tr>";
}
}
}
#Функція для знаходження та виводу товарів по слову пошуку
function find($find_str)
{
$this->db_connect();
$sql = "SELECT product_id,title,small_description FROM product WHERE title LIKE '%".$find_str."%' AND small_description IS NOT NULL";
$result = mysql_query($sql);
if(@mysql_num_rows($result))
{
for($j=0;$j<mysql_num_rows($result);$j++)
{
$product = mysql_fetch_array($result);
$product_id = $product['product_id'];
$title = $product['title'];
$small_description = $product['small_description'];
$result1 = mysql_query("SELECT price FROM storage_item WHERE product_id=".$product_id);
if(@mysql_num_rows($result1))
{
$storage_item = mysql_fetch_array($result1);
$price = $storage_item['price'];
$availability = "Є в наявності";
}
else
$availability = "Немає в наявності";
echo "<tr><td rowspan='6' valign='top'><img width='256' heigth='256' src=image.php?product_id=".$product_id."></td>";
echo "<td><a style='font-size: 40px' href='item.php?type=".$product_type_id."&id=".$product_id."'>".$title."</a></td></tr>";
echo "<tr><td style='color: grey'>Код товару: ".$product_id."</td></tr>";
echo "<tr><td style='font-family: serif; font-size: 25px'>".$small_description."</td></tr>";
echo "<tr><td style='font-family: serif; font-size: 25px; color: #10df10'>".$availability."</td></tr>";
if(@mysql_num_rows($result1))
{
echo "<tr><td style='font-family: serif; font-size: 45px; color: #10df10'>".$price."грн</td></tr>";
echo "<tr><td><input type='button' class='button_color button_text' style='height: 30px' value='Купити' onClick=window.location.href='buy.php?product_id=".$product_id."'></td></tr>";
}
echo "<tr><td><br><br></td></tr><tr><td><br><br></td></tr>";
}
}
else
echo "<p style='font-style: italic; font-size: 40px; font-family: serif; color: #3333ff;'>Жодного товару не знайдено.</p>";
}
}
#Незалогінений користувач
class guest extends users
{
function db_connect()
{
mysql_connect('localhost','guest','g');
mysql_select_db('internet_shop');
mysql_query("SET NAMES 'utf8'");
}
#Блок для логіну та реєстрації і вивід повідомлень про некоректність введених даних
function greeting($log_err)
{
include_once 'login_block.txt';
if(!strcmp($log_err,'empty_login'))
echo "<font class='color_text'>Введіть логін</font>";
else if(!strcmp($log_err,'empty_password'))
echo "<font class='color_text'>Введіть пароль</font>";
else if(!strcmp($log_err,'user_not_exist'))
echo "<font class='color_text'>Неправильний логін або пароль</font>";
echo "</div></div><hr style='background-color: white; border: none'>";
}
}
#Користувач залогінений як покупець
class defined_user extends users
{
var $login;
var $password;
var $id;
function db_connect()
{
mysql_connect('localhost','user','u');
mysql_select_db('internet_shop');
mysql_query("SET NAMES 'utf8'");
}
function defined_user($login,$password,$id)
{
$this->login = $login;
$this->password = $password;
$this->id = $id;
}
function greeting($log_err)
{
echo "<div class='top_right_div'><h3>";
echo "<font class=color_text>Ви увійшли як користувач:".$this->login."</font></h3>";
echo "<form action='logout.php' method='post'>";
echo "<input type='submit' class='button_color button_text' value='Вийти'>";
echo "</form>";
echo "</div></div><hr style='background-color: white; border: none'>";
}
}
#Користувач залогінений як менеджер
class maneger extends users
{
var $login;
var $password;
var $id;
function db_connect()
{
mysql_connect('localhost','maneger','m');
mysql_select_db('internet_shop');
mysql_query("SET NAMES 'utf8'");
}
function maneger($login,$password,$id)
{
$this->login = $login;
$this->password = $password;
$this->id = $id;
}
function greeting($log_err)
{
echo "<div class='top_right_div'><h3>";
echo "<font class=color_text>Ви увійшли як менеджер:".$this->login."</font></h3>";
echo "<table><tr>";
echo "<td>";
echo "<input type='button' class='button_color button_text' value='Сторінка менеджера' onClick=window.location.href='admin_room.php'>";
echo "</td>";
echo "<td>";
echo "<input type='button' class='button_color button_text' value='Вийти' onClick=window.location.href='logout.php'>";
echo "</td>";
echo "</tr></table>";
echo "</div></div><hr style='background-color: white; border: none'>";
}
}
#Користувач залогінений як адміністратор
class admin extends users
{
var $login;
var $password;
var $id;
function db_connect()
{
mysql_connect('localhost','shop_admin','administrator');
mysql_select_db('internet_shop');
mysql_query("SET NAMES 'utf8'");
}
function admin($login,$password,$id)
{
$this->login = $login;
$this->password = $password;
$this->id = $id;
}
function greeting($log_err)
{
echo "<div class='top_right_div'><h3>";
echo "<font class=color_text>Ви увійшли як адміністратор:".$this->login."</font></h3>";
echo "<table><tr>";
echo "<td>";
echo "<input type='button' class='button_color button_text' value='Сторінка адміністратора' onClick=window.location.href='admin_room.php'>";
echo "</td>";
echo "<td>";
echo "<input type='button' class='button_color button_text' value='Вийти' onClick=window.location.href='logout.php'>";
echo "</td>";
echo "</tr></table>";
echo "</div></div><hr style='background-color: white; border: none'>";
}
}
#Клас для перевірки коректності введених даних
class check
{
#Перевірка введених даних для таблиці покупців
function customer_check($lastname,$name,$contact_phone,$adress)
{
if(!strlen($lastname))
return "Введіть фамілію";
else if(!strlen($name))
return "Введіть ім'я";
else if(strlen($contact_phone) != 10 ||!is_numeric($contact_phone))
return "Невірно вказаний номер телефону(10 цифр)";
else if(!strlen($adress))
return "Введіть адресу";
else
return "";
}
#Перевірка введених даних для таблиці менеджерів
function maneger_check($fullname,$succes_orders,$canceled_orders)
{
if(!strlen($fullname))
return "Введіть повне ім'я";
else if(!strlen($succes_orders) || !is_numeric($succes_orders))
return "Некоректно вказана або не вказана кількість вдалих угод";
else if(!strlen($canceled_orders) || !is_numeric($canceled_orders))
return "Некоректно вказана або не вказана кількість невдалих угод";
}
#Перевірка введених даних для таблиці продуктів
function product_check($title)
{
if(!strlen($title))
return "Введыть назву";
}
#Перевірка введених даних для таблиці складу
function storage_item_check($product_id,$arrival_date,$product_number,$price)
{
if(!strlen($product_id) || !is_numeric($product_id))
return "Введіть коректний номер продукту";
else if(!strlen($arrival_date))
return "Введіть дату";
else if(!strlen($product_number) || !is_numeric($product_number))
return "Невірно вказана кількість товарів";
else if(!strlen($price) || !is_numeric($price))
return "Невірно вказана ціна";
else
return "";
}
#Перевірка введених даних для таблиці передзамовлень
function preorder_check($lastname,$name,$contact_phone,$adress,$storage_item_id,$product_number)
{
if(!strlen($lastname))
return "Введіть прізвище";
else if(!strlen($name))
return "Введіть ім'я";
else if(strlen($contact_phone) != 10 || !is_numeric($contact_phone))
return "Введіть коректний номер телефону(10 цифр)";
else if(!strlen($adress))
return "Введіть адресу";
else if(!strlen($storage_item_id) || !is_numeric($storage_item_id))
return "Введіть коректний код товару на складі";
else if(!strlen($product_number) || !is_numeric($product_number))
return "Введіть коректну кількість замовленої продукції";
else
return "";
}
}
?>
maneger.php
<?php
require_once 'users.php';
session_start();
if($_GET['auto_maneger_rate'] == 1)
{
$user = $_SESSION['user'];
$user->db_connect();
$sql = "CALL internet_shop.auto_maneger_rate();";
mysql_query($sql);
header("location: maneger.php");
}
else if($_GET['auto_maneger_rate'] == 2)
{
$user = $_SESSION['user'];
$user->db_connect();
$sql = "CALL internet_shop.auto_null_deals();";
mysql_query($sql);
$sql = "CALL internet_shop.auto_maneger_rate();";
mysql_query($sql);
header("location: maneger.php");
}
?>
<script language="javascript">
function cancel_edit()
{
var table = document.getElementById("table");
table.innerHTML = "";
}
function addRowForm()
{
var add_table = document.getElementById("table");
var head = "<tr><td>Логін</td><td>Пароль</td><td>Повне ім'я</td></tr>";
var data_input = "<form action='add_row.php' method='post'><tr>";
data_input = data_input + "<td><input type='text' name='login'></td>";
data_input = data_input + "<td><input type='password' name='password'></td>";
data_input = data_input + "<td><input type='text' name='fullname'></td>";
data_input = data_input + "</tr>";
data_input = data_input + "<tr><td><input type = 'submit' class='button_color button_text' value = 'Додати'></td>";
data_input = data_input + "<td><input type = 'button' class='button_color button_text' value = 'Відміна' onClick = 'cancel_edit();'></td>"
add_table.innerHTML = head + data_input;
}
function submit_editing(i)
{
var cur_element;
cur_element = document.getElementsByName("maneger_id"+i);
var maneger_id = cur_element[0].value;
cur_element = document.getElementsByName("fullname"+i);
var fullname = cur_element[0].value;
cur_element = document.getElementsByName("succes_orders"+i);
var succes_orders = cur_element[0].value;
cur_element = document.getElementsByName("canceled_orders"+i);
var canceled_orders = cur_element[0].value;
window.location.href = "edit_table.php?maneger_id="+maneger_id+"&fullname="+fullname+"&succes_orders="+succes_orders+"&canceled_orders="+canceled_orders;
}
function edit(i)
{
var cur_element;
cur_element = document.getElementsByName("fullname"+i);
cur_element[0].removeAttribute("readonly");
cur_element = document.getElementsByName("succes_orders"+i);
cur_element[0].removeAttribute("readonly");
cur_element = document.getElementsByName("canceled_orders"+i);
cur_element[0].removeAttribute("readonly");
var commit_button;
commit_button = document.createElement("input");
commit_button.setAttribute("type", "button");
commit_button.setAttribute("class", "button_color button_text");
commit_button.setAttribute("name","maneger_edit");
commit_button.setAttribute("value","Підтвердити");
commit_button.setAttribute("onClick","submit_editing("+i+");");
var edit_button = document.getElementsByName("edit"+i)[0];
edit_button.parentNode.replaceChild(commit_button,edit_button);
var cancel_button = document.createElement("input");
cancel_button.setAttribute("type", "button");
cancel_button.setAttribute("class", "button_color button_text");
cancel_button.setAttribute("value","Відміна");
cancel_button.setAttribute("onClick","window.location.href='maneger.php'");
var delete_button = edit_button = document.getElementsByName("delete"+i)[0];
delete_button.parentNode.replaceChild(cancel_button,delete_button);
}
function deleting(i)
{
var cur_element;
cur_element = document.getElementsByName("maneger_id"+i);
var maneger_id = cur_element[0].value;
window.location.href = "delete_row.php?maneger_id="+maneger_id;
}
</script>
<?php
include_once 'site_top.txt';
$_SESSION['user']->greeting($_GET['log_err']);
if($_GET['error'])
echo "<u><p align=center><font class='color_text' size=5>".$_GET['error']."</font></p></u>";
?>
<html>
<head>
</head>
<body>
<meta content="text/html" charset="utf-8">
<link rel="stylesheet" href="styles.css" type="text/css">
<div class="main_div">
<div class="table_title_text"><a class="table_title_text" href="maneger.php">таблиця менеджерів</a></div>
<div class="table_view_div">
<table border="1">
<tr align="center"><td>Код</td><td>Повне ім'я</td><td>Успішні угоди</td><td>Скасовіні угоди</td><td>Рейтинг</td></tr>
<?php
$user = $_SESSION['user'];
$user->db_connect();
$sql = "SELECT * FROM maneger";
$result = mysql_query($sql);
for($i=1;$i<=mysql_num_rows($result);$i++)
{
$row = mysql_fetch_array($result);
echo "<tr><td>";
echo "<input type='text' readonly name='maneger_id".$i."' value='".$row['maneger_id']."'>";
echo "</td><td>";
echo "<input type='text' readonly name='fullname".$i."' value='".$row['fullname']."'>";
echo "</td><td>";
echo "<input type='text' readonly name='succes_orders".$i."' value='".$row['succes_orders']."'>";
echo "</td><td>";
echo "<input type='text' readonly name='canceled_orders".$i."' value='".$row['canceled_orders']."'>";
echo "</td><td>";
echo "<input type='text' readonly name='rates".$i."' value='".$row['rate']."'>";
if(!strcmp($_SESSION['status'],'admin'))
{
echo "</td><td>";
echo "<input type=button class='button_color button_text' name='edit".$i."' value='Редагувати' onClick='edit(".$i.");'>";
echo "</td><td>";
echo "<input type=button class='button_color button_text' name='delete".$i."' value='Видалити' onClick='deleting(".$i.");'>";
}
echo "</td></tr>";
}
mysql_close();
?>
</table>
<?php
if(!strcmp($_SESSION['status'],'admin'))
{
echo "<br>";
echo "<table><tr>";
echo "<td><input type='button' class='button_color button_text' value='Додати рядок' onClick='addRowForm();'></td>";
echo "<td><input type='button' class='button_color button_text' value='Розрахувати рейтинг' onClick=window.location.href='maneger.php?auto_maneger_rate=1'></td>";
echo "<td><input type='button' class='button_color button_text' value='Обнулити рейтинг' onClick=window.location.href='maneger.php?auto_maneger_rate=2'></td>";
echo "</tr></table>";
echo "<br>";
echo "<table id='table'></table>";
}
?>
</div>
<?php
include_once 'site_bottom.txt';
?>
</div>
</body>
</html>
storage_item.php
<?php
require_once 'users.php';
session_start();
if($_GET['product_id'])
{
$user = $_SESSION['user'];
$user->db_connect();
$sql = "INSERT INTO storage_item(product_id) VALUES(".$_GET['product_id'].")";
mysql_query($sql);
header("location: storage_item.php");
}
?>
<script language="javascript">
function cancel_edit()
{
var table = document.getElementById("table");
table.innerHTML = "";
}
function submit_editing(i)
{
var cur_element;
cur_element = document.getElementsByName("storage_item_id"+i);
var storage_item_id = cur_element[0].value;
cur_element = document.getElementsByName("product_id"+i);
var product_id = cur_element[0].value;
cur_element = document.getElementsByName("arrival_date"+i);
var arrival_date = cur_element[0].value;
cur_element = document.getElementsByName("product_number"+i);
var product_number = cur_element[0].value;
cur_element = document.getElementsByName("price"+i);
var price = cur_element[0].value;
window.location.href = "edit_table.php?storage_item_id="+storage_item_id+"&product_id="+product_id+"&arrival_date="+arrival_date+"&product_number="+product_number+"&price="+price;
}
function edit(i)
{
var cur_element;
cur_element = document.getElementsByName("product_id"+i);
cur_element[0].removeAttribute("readonly");
cur_element = document.getElementsByName("arrival_date"+i);
cur_element[0].removeAttribute("readonly");
cur_element = document.getElementsByName("product_number"+i);
cur_element[0].removeAttribute("readonly");
cur_element = document.getElementsByName("price"+i);
cur_element[0].removeAttribute("readonly");
var commit_button;
commit_button = document.createElement("input");
commit_button.setAttribute("type", "button");
commit_button.setAttribute("class", "button_color button_text");
commit_button.setAttribute("name","storage_item_edit");
commit_button.setAttribute("value","Підтвердити");
commit_button.setAttribute("onClick","submit_editing("+i+");");
var edit_button = document.getElementsByName("edit"+i)[0];
edit_button.parentNode.replaceChild(commit_button,edit_button);
var cancel_button = document.createElement("input");
cancel_button.setAttribute("type", "button");
cancel_button.setAttribute("class", "button_color button_text");
cancel_button.setAttribute("value","Відміна");
cancel_button.setAttribute("onClick","window.location.href='storage_item.php'");
var delete_button = edit_button = document.getElementsByName("delete"+i)[0];
delete_button.parentNode.replaceChild(cancel_button,delete_button);
}
function deleting(i)
{
var cur_element;
cur_element = document.getElementsByName("storage_item_id"+i);
var customer_id = cur_element[0].value;
window.location.href = "delete_row.php?storage_item_id="+customer_id;
}
</script>
<?php
include_once 'site_top.txt';
$_SESSION['user']->greeting($_GET['log_err']);
?>
<html>
<head>
</head>
<body>
<meta content="text/html" charset="utf-8">
<link rel="stylesheet" href="styles.css" type="text/css">
<link rel="stylesheet" href="css/ui-lightness/jquery.ui.datepicker.css" type="text/css">
<script type='text/javascript' src='js/jquery.js'></script>
<script type='text/javascript' src='js/jquery-ui-1.8.16.custom.min.js'></script>
<script type='text/javascript' src='js/jquery.ui.datepicker-uk.js'></script>
<div class="main_div">
<div class="table_title_text"><a class="table_title_text" href="storage_item.php">таблиця товарів складу</a></div>
<?php
if($_GET['error'])
echo "<u><p align=center><font class='color_text' size=5>".$_GET['error']."</font></p></u>";
?>
<div class="table_view_div">
<table border="1">
<tr align="center"><td>Код товару складу</td><td>Код товару</td><td>Дата прибуття</td><td>Кількість товарів</td><td>Ціна</td></tr>
<?php
$user = $_SESSION['user'];
$user->db_connect();
$sql = "SELECT * FROM storage_item";
$result = mysql_query($sql);
for($i=1;$i<=mysql_num_rows($result);$i++)
{
$row = mysql_fetch_array($result);
echo "<tr><td>";
echo "<input type='text' readonly name='storage_item_id".$i."' value='".$row['storage_item_id']."'>";
echo "</td><td>";
echo "<input type='text' readonly name='product_id".$i."' value='".$row['product_id']."'>";
echo "</td><td>";
echo "<input id='datepicker' type='text' readonly name='arrival_date".$i."' value='".$row['arrival_date']."'>";
echo "</td><td>";
echo "<input type='text' readonly name='product_number".$i."' value='".$row['product_number']."'>";
echo "</td><td>";
echo "<input type='text' readonly name='price".$i."' value='".$row['price']."'>";
if(!strcmp($_SESSION['status'],'admin'))
{
echo "</td><td>";
echo "<input type=button class='button_color button_text' name='edit".$i."' value='Редагувати' onClick='edit(".$i.");'>";
echo "</td><td>";
echo "<input type=button class='button_color button_text' name='delete".$i."' value='Видалити' onClick='deleting(".$i.");'>";
}
echo "</td></tr>";
}
mysql_close();
?>
</table>
</div>
<script>
$("#datepicker").datepicker({dateFormat: 'yy-mm-dd'});
</script>
<?php
include_once 'site_bottom.txt';
?>
</div>
</body>
</html>
product.php
<?php
require_once 'users.php';
session_start();
?>
<script language="javascript">
function cancel_edit()
{
var table = document.getElementById("table");
table.innerHTML = "";
}
function addRowForm()
{
var add_table = document.getElementById("table");
var head = "<tr align='center'><td>Код класу товарів</td><td>Назва</td><td>Картинки</td><td>Короткий опис</td><td>Повний опис</td><td>Характеристика</td></tr>";
var data_input = "<form action='add_row.php' method='post' enctype='multipart/form-data'><tr>";
data_input = data_input + "<td><input size='5' type='text' name='father_id'></td>";
data_input = data_input + "<td><input type='text' name='title'></td>";
data_input = data_input + "<td><input type='file' name='picture'></td>";
data_input = data_input + "<td><textarea cols='10' rows='10' type='text' name='small_description'></textarea></td>";
data_input = data_input + "<td><textarea cols='15' rows='30' type='text' name='full_description'></textarea></td>";
data_input = data_input + "<td><textarea cols='15' rows='30' type='text' name='characteristic'></textarea></td>";
data_input = data_input + "</tr>";
data_input = data_input + "<tr><td><input type = 'submit' class='button_color button_text' value = 'Додати'></td>";
data_input = data_input + "<td><input type = 'button' class='button_color button_text' value = 'Відміна' onClick = 'cancel_edit();'></td>"
add_table.innerHTML = head + data_input;
}
function add_to_storage(i)
{
var cur_element;
cur_element = document.getElementsByName("product_id"+i);
var product_id = cur_element[0].value;
window.location.href = "storage_item.php?product_id="+product_id;
}
function deleting(i)
{
var cur_element;
cur_element = document.getElementsByName("product_id"+i);
var product_id = cur_element[0].value;
window.location.href = "delete_row.php?product_id="+product_id;
}
</script>
<?php
include_once 'site_top.txt';
$_SESSION['user']->greeting($_GET['log_err']);
if($_GET['error'])
echo "<u><p align=center><font class='color_text' size=5>".$_GET['error']."</font></p></u>";
?>
<html>
<head>
</head>
<body>
<meta content="text/html" charset="utf-8">
<link rel="stylesheet" href="styles.css" type="text/css">
<div class="main_div">
<div class="table_title_text"><a class="table_title_text" href="product.php">таблиця товарів</a></div>
<div class="table_view_div">
<table border="1">
<tr align="center"><td>Код</td><td>Код класу товару</td><td>Назва</td><td>Картинка</td><td>Короткий опис</td><td>Повний опис</td><td>Характеристика</td></tr>
<?php
$user = $_SESSION['user'];
$user->db_connect();
$sql = "SELECT * FROM product";
$result = mysql_query($sql);
for($i=1;$i<=mysql_num_rows($result);$i++)
{
$row = mysql_fetch_array($result);
echo "<tr><td>";
echo "<input type='text' size='5' readonly name='product_id".$i."' value='".$row['product_id']."'>";
echo "</td><td>";
echo "<input type='text' size='5' readonly name='father_id".$i."' value='".$row['father_id']."'>";
echo "</td><td>";
echo "<input type='text' readonly name='title".$i."' value='".$row['title']."'>";
echo "</td><td>";
echo "<img src=image.php?product_id=".$row['product_id'].">";
echo "</td><td>";
echo "<textarea cols='10' rows='5' readonly name='small_description".$i."'>".$row['small_description']."</textarea>";
echo "</td><td>";
echo "<textarea cols='10' rows='5' readonly name='full_description".$i."'>".$row['full_description']."</textarea>";
echo "</td><td>";
echo "<textarea cols='10' rows='5' readonly name='characteristic".$i."'>".$row['characteristic']."</textarea>";
if(!strcmp($_SESSION['status'],'admin'))
{
echo "</td><td>";
echo "<input type=button class='button_color button_text' name='edit".$i."' value='Додати на склад' onClick='add_to_storage(".$i.");'>";
echo "</td><td>";
echo "<input type=button class='button_color button_text' name='delete".$i."' value='Видалити' onClick='deleting(".$i.");'>";
}
echo "</td></tr>";
}
mysql_close();
?>
</table>
<?php
if(!strcmp($_SESSION['status'],'admin'))
{
echo "<br>";
echo "<table><tr>";
echo "<td><input type='button' class='button_color button_text' value='Додати рядок' onClick='addRowForm();'></td>";
echo "</tr></table>";
echo "<br>";
echo "<table id='table'></table>";
}
?>
</div>
<?php
include_once 'site_bottom.txt';
?>
</div>
</body>
</html>
buy.php
<?php
require_once 'users.php';
session_start();
if(!isset($_SESSION['status']))
{
$user = new guest;
$_SESSION['user'] = $user;
$_SESSION['status'] = "guest";
}
else
$user = $_SESSION['user'];
?>
<html>
<head>
</head>
<body>
<meta content="text/html" charset="utf-8">
<link rel="stylesheet" href="styles.css" type="text/css">
<div class="main_div">
<?php
include_once 'site_top.txt';
$_SESSION['user']->greeting($_GET['log_err']);
include_once 'menu.txt';
?>
<br>
<table style="padding-left: 10%">
<?php
$id = $_GET['product_id'];
$_SESSION['user']->db_connect();
$sql = "SELECT title,small_description,full_description,characteristic FROM product WHERE product_id=".$id;
$result = mysql_query($sql);
$product = mysql_fetch_array($result);
$title = $product['title'];
$small_description = $product['small_description'];
$result1 = mysql_query("SELECT price FROM storage_item WHERE product_id=".$id);
if(@mysql_num_rows($result1))
{
$storage_item = mysql_fetch_array($result1);
$price = $storage_item['price'];
$availability = "Є в наявності";
}
else
$availability = "Немає в наявності";
echo "<tr><td rowspan='5' valign='top'><img width='256' heigth='256' src=image.php?product_id=".$id."></td>";
echo "<td><a style='font-size: 40px' href='item.php?type=".$_GET['type']."&id=".$id."'>".$title."</a></td></tr>";
echo "<tr><td style='color: grey'>Код товару: ".$id."</td></tr>";
echo "<tr><td style='font-family: serif; font-size: 25px'>".$small_description."</td></tr>";
echo "<tr><td style='font-family: serif; font-size: 25px; color: #10df10'>".$availability."</td></tr>";
if(@mysql_num_rows($result1))
{
echo "<tr><td style='font-family: serif; font-size: 45px; color: #10df10'>".$price."грн</td></tr>";
}
?>
</table>
<div class="register_div">
<?php
if(isset($_GET['error']))
{
echo "<i><font face='arial' size=+1 color='red'>";
switch($_GET['error'])
{
case 'empty_name':
echo "Введіть ім'я"; break;
case 'empty_lastname':
echo "Введіть прізвище"; break;
case 'empty_phone_number':
echo "Введіть номер телефону"; break;
case 'empty_adress':
echo "Введіть адрес"; break;
case 'incorrect_phone':
echo "Телефонний номер має містити лише 10 цийр"; break;
case 'er':
echo "Покупка не може бути здійснена"; break;
case 0:
$correct = 1; break;
default:
$correct = 0;
}
echo "</font></i>";
}
else
echo "<br>";
?>
<form action="reg.php" method="post">
<font size="4" face="arial">
<?php
if(!$correct)
{
if(strcmp($_SESSION['status'], "guest"))
{
$sql ="SELECT lastname,`name`,contact_phone,adress FROM customer WHERE customer_id=".$user->id;
$result = mysql_query($sql);
$customer = mysql_fetch_array($result);
}
echo "<br>Код товару:<br><input type='text' readonly value='".$_GET['product_id']."' class='color_text' size='50' name='product_id'>";
echo "<br>Ім'я:<br><input type='text' value='".$customer['name']."' class='color_text' size='50' name='name'>";
echo "<br>Прізвище:<br><input type='text' value='".$customer['lastname']."' class='color_text' size='50' name='lastname'>";
echo "<br>Номер телефону (лише цифри):<br><input type='text' value='".$customer['contact_phone']."' class='color_text' size='50' name='phone_number'>";
echo "<br>Адреса:<br><input type='text' value='".$customer['adress']."' class='color_text' size='50' name='adress'>";
echo "<br> <input type='submit' class='button_color' value='Підтвердити'>";
}
else
{
echo "<p style='font-style: italic; font-family: serif; color: #3333ff;'>Товар успішно замовлений.</p>";
echo "<p style='font-style: italic; font-family: serif; color: #3333ff;'>Очікуйте дзвінка від нашого менеджера.</p>";
}
?>
</font>
</form>
</div>
<?php
include_once 'site_bottom.txt';
?>
</div>
</body>
</html>
delete_row.php
<?php
require_once 'users.php';
session_start();
$user = $_SESSION['user'];
$user->db_connect();
if($_GET['customer_id'])
{
$sql = "DELETE FROM customer WHERE customer_id=".$_GET['customer_id'];
$head = "location: customer.php";
}
else if($_GET['maneger_id'])
{
$sql = "DELETE FROM maneger WHERE maneger_id=".$_GET['maneger_id'];
$head = "location: maneger.php";
}
else if($_GET['product_id'])
{
$sql = "DELETE FROM product WHERE product_id=".$_GET['product_id'];
$head = "location: product.php";
}
else if($_GET['storage_item_id'])
{
$sql = "DELETE FROM storage_item WHERE storage_item_id=".$_GET['storage_item_id'];
$head = "location: storage_item.php";
}
else if($_GET['preorder_id'])
{
$sql = "DELETE FROM preorder WHERE preorder_id=".$_GET['preorder_id'];
$head = "location: preorder.php";
}
else if($_GET['order_id'])
{
$sql = "DELETE FROM internet_shop.order WHERE order_id=".$_GET['order_id'];
$head = "location: order.php";
}
else if($_GET['user_id'])
{
$sql = "DELETE FROM internet_shop.user WHERE user_id=".$_GET['user_id'];
$head = "location: user.php";
}
$result = mysql_query($sql);
header($head);
?>
add_row.php
<?php
if(isset($_POST['storage_item_id']) && isset($_POST['contact_phone']))
{
require_once 'users.php';
$preorder_id = $_POST['preorder_id'];
$customer_id = $_POST['customer_id'];
if(!$customer_id)
$customer_id = "NULL";
$lastname = $_POST['lastname'];
$name = $_POST['name'];
$contact_phone = $_POST['contact_phone'];
$adress = $_POST['adress'];
$storage_item_id = $_POST['storage_item_id'];
$product_number = $_POST['product_number'];
$ch = new check();
$error = $ch->preorder_check($lastname, $name, $contact_phone, $adress, $storage_item_id, $product_number);
if(strlen($error))
$head = "location: preorder.php?error=".$error."";
else
{
session_start();
$user = $_SESSION['user'];
$user->db_connect();
$sql = "INSERT INTO preorder(customer_id, lastname, `name`, contact_phone, adress, storage_item_id, product_number) VALUES(".$customer_id.",'".$lastname."','".$name."','".$contact_phone."','".$adress."',".$storage_item_id.",".$product_number.")";
$result = mysql_query($sql);
$error = mysql_error();
if(strlen($error))
$head = "location: preorder.php?error=Товар%20або%20покупець%20з%20вказаним%20кодом%20не%20існують";
else
$head = "location: preorder.php";
}
}
else if($_POST['lastname'])
{
require_once 'users.php';
$lastname = $_POST['lastname'];
$name = $_POST['name'];
$contact_phone = $_POST['contact_phone'];
$adress = $_POST['adress'];
$ch = new check();
$error = $ch->customer_check($lastname, $name, $contact_phone, $adress);
if(strlen($error))
{
$head = "location: customer.php?error=".$error;
}
else
{
session_start();
$user = $_SESSION['user'];
$user->db_connect();
$sql = "INSERT INTO customer(lastname,`name`,contact_phone,adress) VALUES ('".$lastname."','".$name."','".$contact_phone."','".$adress."')";
$result = mysql_query($sql);
$head = "location: customer.php";
mysql_close();
}
}
else if($_POST['title'])
{
require_once 'users.php';
session_start();
$user = $_SESSION['user'];
$user->db_connect();
$father_id = $_POST['father_id'];
if(!$father_id)
$father_id = 0;
$title = $_POST['title'];
$small_description = $_POST['small_description'];
$full_description = $_POST['full_description'];
$characteristic = $_POST['characteristic'];
if(strlen($error))
{
$head = "location: product.php?error=".$error;
}
else
{
if(is_uploaded_file($_FILES['picture']['tmp_name']))
{
$f = fopen($_FILES['picture']['tmp_name'], "rb");
$picture = fread($f, filesize($_FILES['picture']['tmp_name']));
fclose($f);
$picture = addslashes($picture);
}
$sql = "INSERT INTO product(father_id,title,picture,small_description,full_description,characteristic) VALUES (".$father_id.",'".$title."','$picture','".$small_description."','".$full_description."','".$characteristic."')";
$result = mysql_query($sql);
$error = mysql_error();
if(strlen($error))
$head = "location: product.php?error=".$error;
else
$head = "location: product.php";
}
mysql_close();
}
else
{
require_once 'users.php';
$fullname = $_POST['fullname'];
if(!strlen($fullname))
$fullname = "NULL";
session_start();
$user = $_SESSION['user'];
$user->db_connect();
$sql = "CALL add_maneger(".$fullname.")";
mysql_query($sql);
$sql = "SELECT @message AS message";
$result = mysql_query($sql);
$message = mysql_fetch_array($result);
if(!$message['message'])
{
$sql = "INSERT INTO maneger(fullname) VALUES ('".$fullname."')";
$result = mysql_query($sql);
$sql = "SELECT maneger_id FROM maneger ORDER BY maneger_id DESC LIMIT 1";
$result = mysql_query($sql);
$id = mysql_fetch_array($result);
$id = $id['maneger_id'];
$sql = "INSERT INTO user(user_id,login,password,status) VALUES(".$id.",'".$_POST['login']."','".$_POST['password']."','maneger')";
mysql_query($sql);
$head = "location: maneger.php";
}
else
$head = "location: maneger.php?error=".$message['message'];
mysql_close();
}
if($head)
header($head);
else
header("location: admin_room.php");
?>
edit_table.php
<?php
if(isset($_GET['order_id']))
{
require_once 'users.php';
$order_id = $_GET['order_id'];
$storage_item_id = $_GET['storage_item_id'];
$customer_id = $_GET['customer_id'];
$sent = $_GET['sent'];
$product_number = $_GET['product_number'];
$payment = $_GET['payment'];
if(strlen($error))
$head = "location: order.php?error=".$error."";
else
{
session_start();
$user = $_SESSION['user'];
$user->db_connect();
$sql = "UPDATE internet_shop.order SET storage_item_id = ".$storage_item_id.", customer_id=".$customer_id.", sent=".$sent.", product_number=".$product_number.", payment='".$payment."' WHERE order_id=".$order_id;
$result = mysql_query($sql);
if(mysql_error())
$head = "location: order.php?error=".mysql_error();
else
{
$result = mysql_query("SELECT @message AS message");
$message = mysql_fetch_array($result);
$message = $message['message'];
if(strlen($message))
$head = "location: order.php?error=".$message;
else
$head = "location: order.php";
}
}
}
else if(isset($_GET['preorder_id']))
{
require_once 'users.php';
$preorder_id = $_GET['preorder_id'];
$customer_id = $_GET['customer_id'];
$lastname = $_GET['lastname'];
$name = $_GET['name'];
$contact_phone = $_GET['contact_phone'];
$adress = $_GET['adress'];
$storage_item_id = $_GET['storage_item_id'];
$product_number = $_GET['product_number'];
$ch = new check();
$error = $ch->preorder_check($lastname, $name, $contact_phone, $adress, $storage_item_id, $product_number);
if(strlen($error))
$head = "location: preorder.php?error=".$error."";
else
{
session_start();
$user = $_SESSION['user'];
$user->db_connect();
$sql = "UPDATE preorder SET customer_id=".$customer_id.", lastname='".$lastname."', `name`='".$name."', contact_phone='".$contact_phone."', adress='".$adress."', storage_item_id = ".$storage_item_id.", product_number=".$product_number." WHERE preorder_id=".$preorder_id;
$result = mysql_query($sql);
if(mysql_error())
$head = "location: preorder.php?error=Відсутній%20товар%20або%20покупець%20із%20вказаним кодом";
else
$head = "location: preorder.php";
}
}
else if(isset($_GET['customer_id']))
{
require_once 'users.php';
$customer_id = $_GET['customer_id'];
$lastname = $_GET['lastname'];
$name = $_GET['name'];
$contact_phone = $_GET['contact_phone'];
$adress = $_GET['adress'];
$ch = new check();
$error = $ch->customer_check($lastname, $name, $contact_phone, $adress);
if(strlen($error))
$head = "location: customer.php?error=".$error."";
else
{
session_start();
$user = $_SESSION['user'];
$user->db_connect();
$sql = "UPDATE customer SET lastname='".$lastname."', `name`='".$name."', contact_phone='".$contact_phone."', adress='".$adress."' WHERE customer_id=".$customer_id;
$result = mysql_query($sql);
$head = "location: customer.php";
}
}
else if($_GET['storage_item_id'])
{
require_once 'users.php';
$storage_item_id = $_GET['storage_item_id'];
$product_id = $_GET['product_id'];
$arrival_date = $_GET['arrival_date'];
$product_number = $_GET['product_number'];
$price = $_GET['price'];
$ch = new check();
$error = $ch->storage_item_check($product_id,$arrival_date,$product_number,$price);
if(strlen($error))
{
$head = "location: storage_item.php?error=".$error;
}
else
{
session_start();
$user = $_SESSION['user'];
$user->db_connect();
$sql = "UPDATE storage_item SET product_id=".$product_id.", arrival_date='".$arrival_date."', product_number=".$product_number.", price=".$price." WHERE storage_item_id=".$storage_item_id;
$result = mysql_query($sql);
$error = mysql_error();
if(strlen($error))
$head = "location: storage_item.php?error=Відсутній%20товар%20з%20вказаним%20кодом";
else
$head = "location: storage_item.php";
mysql_close();
}
}
else if($_GET['maneger_id'])
{
require_once 'users.php';
$maneger_id = $_GET['maneger_id'];
$fullname = $_GET['fullname'];
$succes_orders = $_GET['succes_orders'];
$canceled_orders = $_GET['canceled_orders'];
$ch = new check();
$error = $ch->maneger_check($fullname, $succes_orders, $canceled_orders);
if(strlen($error))
$head = "location: maneger.php?error=".$error."";
else
{
session_start();
$user = $_SESSION['user'];
$user->db_connect();
$sql = "UPDATE maneger SET fullname='".$fullname."', succes_orders=".$succes_orders.", canceled_orders=".$canceled_orders." WHERE maneger_id=".$maneger_id;
$result = mysql_query($sql);
$head = "location: maneger.php";
}
}
header($head);
?>