Інтернет-магазин комп’ютерної техніки Shop.ua 'ІО.Electrical'

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    1,49 Мб
  • Опубликовано:
    2013-08-06
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Інтернет-магазин комп’ютерної техніки Shop.ua 'ІО.Electrical'

Національний технічний університет України

Київський політехнічний інститут

Кафедра автоматизованих систем обробки інформації і управління






КУРСОВА РОБОТА

З дисципліни

Організація баз даних та знань

Тема:

Інтернет-магазин комп’ютерної техніки Shop.ua "ІО.Electrical"



Виконав: Чабанов О.Р.

Група: ІС-03

Керівник: к.т.н., ст. викл.

Попенко В.Д.




Київ 2012

ЗАВДАННЯ

На курсову роботу по дисципліні "Організація баз даних та знань"

Фахове спрямування - "Інформаційні управляючі системи та технології"

Напрям 6.050101 "Комп'ютерні науки" Група ІС-03

Чабанов Олег Руслановіч

Тема курсової роботи: Інтернет магазин комп’ютерної техніки Shop.ua «ІО.Electrical»

ЗМІСТ

Постановка задачі

Вступ

Анотація

. Структура об’єктів і зв’язків предметної області

. Опис структури проекту

. Керівництво користувача

.1 Основна інформація

.2 Головна сторінка

.3 Сторінка з таблицею менеджерів

.4 Сторінка з таблицею товарів

.5 Сторінка з таблицею складу

.6 Сторінка користувачів сайту

.7 Сторінка покупців

.8 Сторінка попередніх замовлень

.9 Сторінка замовлень

.10 Сторінка зі списком товарів для покупки

.11 Сторінка з інформацією про товар

. Код MySQL

. Створення резервної копії бази даних

Висновок

Використана література

Додаток: Сторінки рhp програми де використовуються SQL запити

ПОСТАНОВКА ЗАДАЧІ


Є інтернет-магазин зі своїм складом товару. В інтернет-магазині користувачі мережі “Інтернет” можуть вибрати товар, отримати про нього необхідну інформацію та замовити, менеджер магазину належним чином обробити замовлення, а адміністратор сайту обновлювати та доповнювати дані про товари.

Замовлення відбувається в такій послідовності:

    Користувач заповнює необхідну інформацію для заказу товару (ПІБ, номер телефону, адресу доставки), дані обробляються як передзамовлення

-        Менеджер сайту по введеній інформації зв’язується з клієнтом (для утвердження покупки та оплати) після цього оформлює замовлення

         При скасування замовлення менеджер видаляє передзамовлення.

         Товар відправляється зі складу по вказаній адресі клієнта.

ВСТУП

 

Мета створення

Метою створення є розробка движку сайту, за допомогою якого користувачі мережі “Інтернет” можуть вибрати товар, отримати про нього необхідну інформацію та замовити, менеджер магазину належним чином обробити замовлення, а адміністратор сайту обновлювати та доповнювати дані про товари. Дана програма може використовуватись на фірмі для реалізації товарів через мережу.

Призначення системи

Система призначена для:

-   Надання можливості зручного пошуку, отримання інформації та замовлення товарів за допомогою мережі “Інтернет”;

-        Автоматизації роботи менеджера по обробці замовлень.

         Надання адміністратору зручної можливості оперування даними товарів.

Вимоги до програми

·  Інтуїтивно зрозумілий інтерфейс користувача

·        Використання запитів.

·        Використання виключних ситуацій з боку сервера (також власних)

·        Використання процедур (тригерів)

Програмне забезпечення має працювати з наступними таблицями:

·  Покупці

·        Менеджери

·        Товари

·        Склад

·        Попередні замовлення

·        Замовлення

·        Користувачі сайту

Необхідно реалізувати наступні функції:

·  Додавання інформації

·        Коригування даних

·        Видалення даних

·        Автоматичного оброблення та зміни даних

·        Виведення даних в різноманітних формах

·        Інші функції для покращення роботи.

Для розробки програмного забезпечення необхідно використовувати наступні засоби:

·  Гіпертекстовий процесор php версії 5.3 та вище.

·        HTTP сервер Apache або аналогічний сервер.

·        Веб браузер (напр. Google Chrome).

·        СУБД mysql версії 5.5.

·        IDE для взаємодії з mysql (напр. phpMyAdmin).

Програмно-технічні засоби

Вимоги до апаратного забезпечення:

·  Процесор з частотою не менше 1 GHz

·        Оперативна пам’ять 512 Мб

·        Клавіатура

Для функціонування даної програми необхідна наявність зі сторони клієнта наступного:

·  ОС.

·        Веб браузер (напр. Google Chrome).

Зі сторони сервера:

·  ОС лінійки Windows або Linux.

·  Гіпертекстовий процесор php версії 5.3 та вище.

·        HTTP сервер Apache або аналогічний сервер.

·        СУБД mysql.

АНОТАЦІЯ


Розглянутий програмний продукт призначений для реалізації покупок через мережу “Інтернет” Він має ряд можливостей для досягнення цієї цілі.

Можна відмітити наступний ряд особливостей:

·  Наявність зручного та зрозумілого інтерфейсу

·        Дизайнерське оформлення сайту

·        Реалізована можливість реєстрації та входу під своїм обліковим записом

·        Надання різних можливостей різним групам користувачів

·        Наявність пошуку товарів по частині назви

·        Зручна навігація по сайту

·        Перегляд даних про товар у зручному форматі

·        Автоматизація редагування даних

·        Вивід повідомлень про некоректність введених даних

·        Весь інтерфейс українською мовою(включаючи повідомлення про помилки)

Програма містить ряд тригерів для автоматичної зміни даних. Наприклад, підрахунок кількості вдалих та невдалих угод менеджера, який відбувається після зміни статусу оплати за товар у таблиці замовлень.

Наявні процедури для автоматичного підрахунку рейтингу менеджера та обнуління його статистики успішності продаж.

В свою чергу присутній інтерфейс для ручної зміни даних для всіх таблиць.

1. Структура об’єктів і зв’язків предметної області


Структура бази даних представлена на схемі 1.1. Представлена у вигляді ER-діаграми.

Схема 1.1 На представленій схемі ER діаграма

2. Опис структури проекту


Структура проекту зображена на рисунку 2.1

Рисунок 2.1

Для зберігання графічних об’єктів використовується база даних. Також деякі логотипи зберігаються в окремій папці.

Бізнес логіка розділена на 3 частини: клієнтська, менеджерська та адміністраторська взаємодія з програмою. Клієнт може реєструватись, логінитись, шукати товар за частиною його назви, переглядати інформацію про товар, його ціну і наявність на складі та замовляти товар. Менеджер може в явному вигляді редагувати такі таблиці як: покупці, предзамовлення, замовлення, всі інші таблиці він може лише переглядати. Адміністратор може редагувати наступні таблиці: менеджерів, продуктів, складу, користувачів сайту, всі інші лише переглядати.

3. Керівництво користувача

 

3.1        Основна інформація


Реалізований програмний продукт назначений для замовлення товарів через Інтернет та обробку замовлень. В зв’язку з цим реалізований зручний користувацький інтерфейс та наступні можливості:

Для користувача:

·  Вивід необхідної інформації про товар у зручному вигляді.

·        Шукати товар за частиною назви. Якщо знайдено декілька відповідних товарів - то всі вони виводяться на вибір покупця.

·        Реєстрація та вхід в систему для того, щоб при кожному замовлені повторно не вводити особисту інформацію.

Для менеджерів:

·  По натиску на кнопку додати особисту інформацію користувача з таблиці передзамовлень до таблиці користувачів.

·        По натиску на кнопку редагувати інформацію користувача відповідно до інформація в таблиці передзамовлень.

·        По натиску на кнопку перенести запис із таблиці передзамовлень до таблиці замовлень, причому код менеджера, який натисніть на кнопку буде автоматично додано в таблицю.

·        Автоматично збільшити кількість вдалих або невдалих угод менеджера при оплаті або відмові від оплати товару відповідно.

Для адміністратора сайту:

·  По натиску на кнопку розрахувати рейтинг менеджера відповідно до його вдалих та невдалих угод.

·        По натиску на кнопку обнулити статистику угод менеджера.

Також реалізовані перевірки логічних виключних ситуацій (логін вже зайнятий, відсутній вказаний батьківський ключ в ієрархічній таблиці і т.д.) і вивід відповідних повідомлень українською мовою.

3.2        Головна сторінка


Зовнішній вид головної сторінки для користувача, який не увійшов в систему, представлений на рис. 3.2.1.

Рисунок 3.2.1

Дана сторінка містить назву магазину, його логотип форму для пошуку, форму для логіну, посилання на сторінку реєстрації та список класів і видів товарів у вигляді гіперпосилань на сторінку з відповідними товарами .

Якщо увійшов адміністратор сайту то головна сторінка прийме вигляд представлений на рис. 3.2.2

Рисунок 3.2.2

Після натискання на кнопку “Сторінка адміністратора” відбудеться перехід на сторінку вибору таблиці представленої на рис 3.2.3.

Рисунок 3.2.3

3.3    Сторінка з таблицею менеджерів


Дана сторінка назначена для перегляду та редагуванню інформації про менеджерів.

Зовнішній вид сторінки представлений на рис 3.3.1.

Рисунок 3.3.1

Для додавання нового менеджера достатньо натиснути на кнопку “Додати рядок” після чого з’явиться форма в яку необхідно ввести логін, пароль, та прізвище менеджера. Логін та пароль будуть зберігатись у таблиці користувачів, а фамілія попаде в таблицю менеджерів. При натиску на кнопку “Редагувати” значення в полях відповідного рядка можна буде змінювати. Після натиску на кнопку “Підтвердити” інформація в базі буде оновлена. Для видалення відповідного рядку достатньо натиснути на кнопку “Видалити”. Для розрахунку рейтингу усіх менеджерів треба натиснути на кнопку “Розрахувати рейтинг”. Для обнуління статистики вдалих та невдалих угод натиснути на кнопку “Обнулити рейтинг”.

3.4    Сторінка з таблицею товарів


Дана сторінка представлена на рис. 3.4.1. Вона містить поле з картинкою товару та поля з прокруткою для перегляду значних за об’ємом текстових даних.

Рисунок 3.4.1

Присутня кнопка “Додати на склад”, після натиску на яку товар буде автоматично занесений в таблицю складу. При додаванні нового рядка адміністратору відкривається форма представлена на рис. 3.4.2.

Рисунок 3.4.2

На цій формі присутнє поле по натиску на яке відкривається діалогове вікно для вибору файлу - картинки на диску, яка буде завантажена на сервер.

3.5    Сторінка з таблицею складу


Дана сторінка представлена на рис. 3.5.1 Вона містить кнопки редагування та видалення. Кнопка додавання записів відсутня, оскільки воно відбувається автоматично з таблиці товарів.

Рисунок 3.5.1

3.6    Сторінка користувачів сайту


Дана сторінка представлена на рис. 3.6.1. Вона не відображає паролі користувачів, для запобігання несанкціонованого доступу до облікового запису. Кнопки редагування та додавання записів також відсутні, так як ці процеси відбуваються автоматично при реєстрації. Адміністратор сайту має можливість лише видалити обліковий запис користувача.

Рисунок 3.6.1

3.7    Сторінка покупців


Зовнішній вигляд сторінки представлений на рис. 3.7.1. Менеджер має можливість додавати, редагувати та видаляти записи.

3.8    Сторінка попередніх замовлень


Вигляд сторінки представлений на рис. 3.8.1 Вона містить крім стандартних кнопок редагування, ще кнопки “Додати до покупців”,“Редагувати покупця” та “Додати до замовлень”.

Рисунок 3.7.1

Рисунок 3.8.1

Кнопка “Додати до покупців” доступна, якщо відсутній код покупця, тобто інформації про покупця немає у відповідній таблиці. Після натиску на неї особисті дані будуть передані в таблицю покупців, де створиться новий запис.

Кнопка “Редагувати покупця” служить для того щоб редагувати дані покупця у відповідній таблиці, опираючись на інформацію з попереднього замовлення.

Кнопка “Додати до замовлень” переносить необхідну інформацію у таблицю замовлень, включаючи код менеджера, який натиснув на кнопку та видаляє запис із попередніх замовлень.

3.9   Сторінка замовлень


Дана сторінка містить інформацію про замовлення та кнопки редагування і видалення записів. Вона представлена на рис 3.9.1

Рисунок 3.9.1

В цій таблиці також відображається ціна замовлення, яка розраховується як ціна товару помножена на замовлену кількість. Перед тим як змінити статус оплати, необхідно вказати, що товар відправлений, ввівши у відповідне поле 1. Статус оплати може бути або “credit”, або “cash”, або “canceled”. При введенні одного з двох перших значень, кількість успішних угод менеджера автоматично збільшується, а останнього - кількість невдалих угод.

3.10   Сторінка зі списком товарів для покупки


Дана сторінка представлена на рис. 3.10.1.

Рисунок 3.10.1

Вона містить список товарів у зручній для покупця формі, де вказані код товару, назва, картинка, короткий опис, наявність на складі та ціна. У лівій частині відображений список фірм, по натиску на якусь із них відбудеться фільтрований по цій фірмі вивід товарів. Також присутня кнопка купити, після натиску на яку відкривається сторінка з формою для введення особистих даних користувача, яка представлена на рис. 3.10.2.

Рисунок 3.10.2

Якщо користувач був залогінений в систему - то його дані автоматично будуть занесені в цю форму і він може при бажанні редагувати їх чи просто підтвердити. Після чого виведеться відповідне повідомлення про успішну покупку товару. Якщо ж покупець натиснув не на кнопку купити, а на гіперпосилання у вигляді назви товару - то йому відкриється сторінка з детальною інформацією про товар.

3.11  Сторінка з інформацією про товар


Дана сторінка представлена на рис. 3.11.1. Вона додатково містить блок для виводу додаткових даних про товар, таку як повний опис або характеристику товару, та кнопки для вибору яку саме інформацію виводити.

Рисунок 3.11.1

4. Код MySQL


//#Створення бази даних інтернет магазину.

//#Створення бази даних інтернет магазину.DATABASE internet_shop DEFAULT CHARACTER SET utf8 utf8_general_ci;

//#Створення користувачів різних типів магазину.USER 'shop_admin'@'%' IDENTIFIED BY 'administrator';USER 'guest'@'%' IDENTIFIED BY 'g';USER 'user'@'%' IDENTIFIED BY 'u';USER 'maneger'@'%' IDENTIFIED BY 'm';

//#Надання користувачам прав на базу даних інтернет магазину.ALL PRIVILEGES ON internet_shop.* TO 'shop_admin'@'%' GRANT OPTION;INSERT,SELECT ON internet_shop.user TO 'guest'@'%';INSERT,SELECT ON internet_shop.customer TO 'guest'@'%';SELECT ON internet_shop.product TO 'guest'@'%';SELECT ON internet_shop.storage_item TO 'guest'@'%';INSERT ON internet_shop.preorder TO 'guest'@'%';SELECT ON internet_shop.user TO 'user'@'%';INSERT ON internet_shop.preorder TO 'user'@'%';SELECT ON internet_shop.customer TO 'user'@'%';SELECT ON internet_shop.storage_item TO 'user'@'%';SELECT ON internet_shop.product TO 'user'@'%';SELECT ON internet_shop.product TO 'maneger'@'%';SELECT ON internet_shop.storage_item TO 'maneger'@'%';SELECT ON internet_shop.maneger TO 'maneger'@'%';SELECT,INSERT,UPDATE,DELETE ON internet_shop.customer 'maneger'@'%';SELECT,INSERT,UPDATE,DELETE ON internet_shop.order TO

'maneger'@'%';SELECT,INSERT,UPDATE,DELETE ON internet_shop.preorder 'maneger'@'%';EXECUTE ON *.* TO 'maneger'@'%';

//#Створення таблиці покупцівTABLE internet_shop.customer (_id INT(5) AUTO_INCREMENT,VARCHAR(50) CHARACTER SET utf8 COLLATE _general_ci NOT NULL,

`name` VARCHAR(50) CHARACTER SET utf8 COLLATE _general_ci NOT NULL,_phone VARCHAR(20) CHARACTER SET utf8 COLLATE _general_ci NOT NULL,VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL,KEY(customer_id)

) ENGINE = INNODB CHARACTER SET utf8 COLLATE _general_ci;

//#Створення індексу для таблиці покупців на поле прізвище покупця.INDEX cus_fullname_index ON _shop.customer(lastname,`name`);

//#Створення таблиці менеджерівTABLE internet_shop.maneger (_id INT(5) AUTO_INCREMENT,VARCHAR(50) CHARACTER SET utf8 COLLATE _general_ci NOT NULL,_orders INT(5) DEFAULT 0,_orders INT(5) DEFAULT 0,INT(3) DEFAULT 0,KEY(maneger_id)

) ENGINE = INNODB CHARACTER SET utf8 COLLATE _general_ci;

//#Створення таблиці товарів. Ієрархічна таблиця, де первинний батько

клас товару, далі вид товару, фірма виробник і кінцевий нащодок -

назва самого товару.

//#Наприклад: Комп'ютери - ноутбуки - Asus - Eee PC 1011PX-W.TABLE internet_shop.product(_id INT(5) AUTO_INCREMENT,_id INT(5),VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL,BLOB,_description TINYTEXT CHARACTER SET utf8 COLLATE _general_ci,_description TEXT CHARACTER SET utf8 COLLATE _general_ci,TEXT CHARACTER SET utf8 COLLATE utf8_general_ci,KEY(product_id)

) ENGINE = INNODB CHARACTER SET utf8 COLLATE _general_ci;

//#Створення індексу для таблиці товарів на поле назву товару.INDEX product_title_index ON internet_shop.product(title);

//#Створення таблиці складу для збереження товарів на складі та їх

кількостіTABLE internet_shop.storage_item(_item_id INT(5) AUTO_INCREMENT,_id INT(5),_date DATE,_number int(3),FLOAT,KEY(storage_item_id),KEY (product_id) REFERENCES _shop.product(product_id)

) ENGINE = INNODB CHARACTER SET utf8 COLLATE _general_ci;

//#Таблиця попередніх замовленьTABLE internet_shop.preorder(_id INT(5) AUTO_INCREMENT,_id INT(5),VARCHAR(50) CHARACTER SET utf8 COLLATE _general_ci NOT NULL,

`name` VARCHAR(50) CHARACTER SET utf8 COLLATE _general_ci NOT NULL,_phone VARCHAR(20) CHARACTER SET utf8 COLLATE _general_ci NOT NULL,VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL,_item_id INT(5),_number INT(5) DEFAULT 1,KEY(preorder_id),KEY (storage_item_id) REFERENCES _shop.storage_item(storage_item_id)

) ENGINE = INNODB CHARACTER SET utf8 COLLATE _general_ci;

//#Таблиця замовлень.TABLE internet_shop.order(_id INT(5) AUTO_INCREMENT,_item_id INT(5),_id INT(5),_id INT(5),TINYINT(1) DEFAULT 0,_number INT(5) DEFAULT 1,VARCHAR(8) CHARACTER SET utf8 COLLATE _general_ci,FLOAT,KEY(order_id),KEY (storage_item_id) REFERENCES _shop.storage_item(storage_item_id),KEY (maneger_id) REFERENCES _shop.maneger(maneger_id),KEY (customer_id) REFERENCES _shop.customer(customer_id)

) ENGINE = INNODB CHARACTER SET utf8 COLLATE _general_ci;

//#Таблиця логінів та паролей користувачівTABLE internet_shop.user(_id INT(5),VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL,VARCHAR(50) CHARACTER SET utf8 COLLATE _general_ci NOT NULL,VARCHAR(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL

) ENGINE = INNODB CHARACTER SET utf8 COLLATE _general_ci;

#Процедура для наступної функції (динамічні твердження не

дозволяються у функціях та триггерах).PROCEDURE(IN login_var VARCHAR(50), OUT )

#Функція для перевірки наявності запису з вказаним логіном в таблиці

користувачів//FUNCTION internet_shop.check_login(login_var (50)) RETURNS TINYINT(1)existence TINYINT(1);@login_var = login_var;@s = 'SELECT customer_id INTO ? WHERE EXIST(SELECT user_id internet_shop.user WHERE login=?)';stmt FROM @s;stmt USING @existence,@login_var;existence = @existence;existence;//;

//#Процедура додавання нового менеджера з обробкою виключення

щодо пустого поля іменіPROCEDURE internet_shop.add_maneger;//PROCEDURE internet_shop.add_maneger(IN name (50))EXIT HANDLER FOR SQLEXCEPTION@message = 'Пусте поле імені!';;INTO internet_shop.maneger(fullname) VALUES (name);@message = 'Процедура виконалась успішно.';//;

internet_shop.add_maneger(NULL);@message;

//#Процедура для реалізації наступного тригеру для INSERT та .PROCEDURE internet_shop.father_field_procedure;//PROCEDURE internet_shop.father_field_procedure(IN _father_id INT(5))some_product_number INT(5);no_parrent CONDITION FOR SQLSTATE '23000';existence TINYINT(1) DEFAULT 0;id INT(5);done INT DEFAULT 0;ids CURSOR FOR SELECT product_id FROM _shop.product;CONTINUE HANDLER FOR SQLSTATE '02000' SET done =

;EXIT HANDLER FOR no_parrentSQLSTATE '42000' SET MESSAGE_TEXT = 'Відсутній клас

товару з вказаним кодом!';

;new_father_id != 0 THENids;ids INTO id;id = new_father_id THENexistence = 1;IF;done END REPEAT;ids;existence = 1;IF;existence = 0 THENno_parrent;IF;//;

#//Тринер для перевірки батьківського поля у таблиці товарів, при

додаванні чи зміні записуTRIGGER internet_shop.father_field_trigger;

DELIMITER //TRIGGER internet_shop.father_field_trigger_ins BEFORE ON internet_shop.productEACH ROWinternet_shop.father_field_procedure(new.father_id);//;//TRIGGER internet_shop.father_field_trigger_upd BEFORE UPDATE ON internet_shop.productEACH ROWinternet_shop.father_field_procedure(new.father_id);//;

INTO internet_shop.product(father_id,title) values(15,'asdfg');* FROM log;

#Тригер для перевірки правильного встановлення віх значень в полях таблиці замовлень до оновлення

#ISNULL(var) ~ var IS NULLINTO internet_shop.orders(storage_item_id,maneger_id,customer_id,sent,price) VALUES(1,1,1,1,30);INTO internet_shop.orders(storage_item_id,customer_id,sent,price) VALUES(2,2,2,10);internet_shop.orders SET payment = 'cash' WHERE order_id = 1;internet_shop.orders SET payment = 'canceled' WHERE order_id = 2;internet_shop.orders SET price = 40, maneger_id = 2 WHERE order_id = 2;TRIGGER internet_shop.check_order_trigger;

//TRIGGER internet_shop.check_order_trigger BEFORE UPDATE ON internet_shop.orderEACH ROWcorrect INT(2) DEFAULT 0;STRCMP(new.payment,old.payment) != 0 THENISNULL(old.order_id) THENcorrect = 1;ISNULL(old.storage_item_id) THENcorrect = 2;ISNULL(old.maneger_id) THENcorrect = 3;ISNULL(old.customer_id) THENcorrect = 4;ISNULL(old.sent) AND old.sent=0 THENcorrect = 5;ISNULL(old.product_number) AND old.product_number<1 THENcorrect = 6;ISNULL(old.price) AND old.price<1 THENcorrect = 7;IF;correct1 THEN SIGNAL SQLSTATE '42000' SET MESSAGE_TEXT = 'Введіть дані в поле коду корзини покупця!';2 THEN SIGNAL SQLSTATE '42000' SET MESSAGE_TEXT = 'Введіть дані в поле коду товару!';3 THEN SIGNAL SQLSTATE '42000' SET MESSAGE_TEXT = 'Введіть дані в поле коду менеджера!';4 THEN SIGNAL SQLSTATE '42000' SET MESSAGE_TEXT = 'Введіть дані в поле коду покупця!';5 THEN SIGNAL SQLSTATE '42000' SET MESSAGE_TEXT = 'Для встановлення оплати товар має дути надісланим!';6 THEN SIGNAL SQLSTATE '42000' SET MESSAGE_TEXT = 'Введіть кількість товарів, яка має бути більшою за 1!';7 THEN SIGNAL SQLSTATE '42000' SET MESSAGE_TEXT = 'Введіть коректну ціну!';SET @message="Оновлення інформації виконалось успішно.";CASE;IF;//;

#Тригер для підвищення кількості вдалих або ні угод менеджера та зменшення кількості товарів на складі після покупкиTRIGGER internet_shop.maneger_deals_trigger;

//TRIGGER internet_shop.maneger_deals_trigger AFTER UPDATE ON internet_shop.orderEACH ROWcorrect TINYINT(1) DEFAULT 0;new.payment IS NOT NULL THENSTRCMP(new.payment,'cash') = 0 OR STRCMP(new.payment,'credit') = 0 THENinternet_shop.maneger SET succes_orders = succes_orders + 1 WHERE maneger_id=new.maneger_id;internet_shop.storage_item SET product_number=new.product_number WHERE storage_item_id=new.storage_item_id;STRCMP(new.payment,'canceled') = 0 THENinternet_shop.maneger SET canceled_orders = canceled_orders + 1 WHERE maneger_id=new.maneger_id;correct = 1;IF;IF;correct = 1 THEN@message = 'Введене значення в поле платні некоректне!';IF;//;

#Тригер для розрахування вартості товаруTRIGGER internet_shop.price_count;

//TRIGGER internet_shop.price_count BEFORE INSERT ON internet_shop.orderEACH ROWprice_var INT(5);product_number_var INT(5);price, product_number INTO price_var, product_number_var FROM internet_shop.storage_item WHERE storage_item_id = new.storage_item_id;new.price = price_var*product_number_var;

//;

#Процедура для автоматичного додавання користувача.PROCEDURE internet_shop.auto_add_customer;

//PROCEDURE internet_shop.auto_add_customer(IN lastname_var VARCHAR(50), IN name_var VARCHAR(50), IN contact_phone_var INT(10), adress_var VARCHAR(50))@s = 'INSERT INTO internet_shop.customer(lastname,`name`,contact_phone,adress) values(?,?,?,?)';stmt FROM @s;@lastname_var = lastname_var;@name_var = name_var;@contact_phone_var = contact_phone_var;@adress_var = adress_var;stmt USING @lastname_var,@name_var,@contact_phone_var,@adress_var;//;

internet_shop.auto_add_customer('Івічук','Семен','вул. Артема 7 кв.15',0445456784);

#Процедура для автоматичного оновлення даних користувача.PROCEDURE internet_shop.auto_update_customer;

//PROCEDURE internet_shop.auto_update_customer(IN customer_id_var INT(5),IN lastname_var VARCHAR(50), IN name_var VARCHAR(50), IN contact_phone_var INT(10), adress_var VARCHAR(50))@s = 'UPDATE internet_shop.customer SET lastname = ?,`name`=?,contact_phone = ?,adress = ? WHERE customer_id = ?';stmt FROM @s;@lastname_var = lastname_var;@name_var = name_var;@contact_phone_var = contact_phone_var;@adress_var = adress_var;@customer_id_var = customer_id_var;stmt USING @lastname_var,@name_var,@contact_phone_var,@adress_var,@customer_id_var;//;

internet_shop.auto_update_customer(2,'Smith','John',888888,'work');

#Процедура для автоматичного додавання замовлень.PROCEDURE internet_shop.auto_add_order;

DELIMITER //PROCEDURE internet_shop.auto_add_order(IN maneger_id_var INT(5),IN customer_id_var INT(5), IN storage_item_id_var INT(5), IN product_number_var INT(5))@s = 'INSERT INTO internet_shop.order(maneger_id,customer_id, storage_item_id,product_number) values(?,?,?,?)';stmt FROM @s;@maneger_id_var = maneger_id_var;@customer_id_var = customer_id_var;@storage_item_id_var = storage_item_id_var;@product_number_var = product_number_var;stmt USING @maneger_id_var,@customer_id_var,@storage_item_id_var,@product_number_var;//;

#Функція для підрахунку рейтингу за кількістю вдалих та невдалих угод.//FUNCTION count_rate(succes INT(5),canceled INT(5),avg_succes INT(5),avg_canceled INT(5))INT(5)rate INT(5);rate = succes - avg_succes - canceled + avg_canceled;rate;//;

#Процедура для автоматичного розрахунку рейтингу менеджера.PROCEDURE internet_shop.auto_maneger_rate;

//PROCEDURE internet_shop.auto_maneger_rate()rate INT(5);avg_succes INT(5);avg_canceled INT(5);id INT(5);succes INT(5);canceled INT(5);done INT DEFAULT 0;meneg CURSOR FOR SELECT maneger_id,2*succes_orders,2*canceled_orders FROM internet_shop.maneger;CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;@s = 'UPDATE internet_shop.maneger SET rate = ? WHERE maneger_id = ?';stmt FROM @s;AVG(succes_orders) INTO avg_succes FROM internet_shop.maneger;AVG(canceled_orders) INTO avg_canceled FROM internet_shop.maneger;meneg;meneg INTO id,succes,canceled;count_rate(succes,canceled,avg_succes,avg_canceled) INTO rate;@rate = rate;@id = id;stmt USING @rate,@id;

done END REPEAT;meneg;//;

internet_shop.auto_maneger_rate();

#Процедура обнулення вдалих та невдалиг угод менеджера//PROCEDURE internet_shop.auto_null_deals()internet_shop.maneger SET succes_orders = 0, canceled_orders = 0;//;

internet_shop.auto_null_deals();



5. Створення резервної копії бази даних


5.1    За допомогою phpmyadmin

Входимо в phpMyAdmin. У вікні, ви побачите свої бази даних.

Натискаємо кнопку «експорт».


У наступному вікні внизу сторінки вибираємо вид архіву, натискаємо ОК, і вказуємо, куди зберегти архів.

.2 Резервне копіювання бази даних за допомогою плагіна WordPress Database Backup

Після установки та активації плагіна, в адмінці сайту відкрийте:

Інструменти - Архівація бази даних і налаштуйте заплановану архівацію. Резервні копії бази даних будуть приходити на зазначений e-mail.


ВИСНОВОК


Розглянувши можливості створеної програмної одиниці можна сказати, що вона задовольняє поставленій задачі. В розробленій програмі присутні наступні можливості:

·  Перегляд інформації про товари у зручній формі та використання пошуку і фільтрів

·        Автоматизована обробка запитів від покупців

·        Автоматизоване адміністрування сайту

·        Розрахунок рейтингу менеджерів

В програмі присутні тригери, процедури та функції для автоматизації роботи. Також наявні динамічні SQL і різноманітні виключні ситуації і їх обробники. Хоча MySQL не містить ієрархічних запитів, проте присутня ієрархічна таблиця та функції і вибірки, які можуть реалізувати роботу з даною таблицею в необхідній мірі. Також наявна робота з транзакціями. Відповідно можна стверджувати, що дана програма в достатній мірі реалізує можливість замовлення товарів та обробку замовлень через мережу “Інтернет”.

база даний інтернет магазин

ВИКОРИСТАНА ЛІТЕРАТУРА


1. MySQL. Просто и понятно

2.      Все о PHP, MySQL и не только

.        Работа с БД на PHP

.        Базы данных: MySQL

.        Все прo SQL базы данных

ДОДАТОК

 

Сторінки рhp програми де використовуються SQL запити


login.php

<?php_once 'users.php';_start();

$user = $_SESSION['user'];

$user->db_connect();

$login = $_POST['login'];

$password = $_POST['password'];(!strlen($login))

$head = "location: Index.php?log_err=empty_login";if(!strlen($password))

$head = "location: Index.php?log_err=empty_password";

{

$sql = "SELECT user_id,status FROM user WHERE login='".$login."' AND password='".$password."'";

$result = mysql_query($sql);(!@mysql_num_rows($result))

$head = "location: Index.php?log_err=user_not_exist";

{

$user_data = mysql_fetch_array($result);(!strcmp($user_data['status'],'user'))

$user = new defined_user($login,$password,$user_data['user_id']);if(!strcmp($user_data['status'],'maneger'))

$user = new maneger($login,$password,$user_data['user_id']);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";

}

}_close();($head);

?>.php

<?php

$firm_id; #Глобальна змінна - код фірми

#Абстрактний клас від якого начлідуються всі види користувачівclass users

{function db_connect(); #Функція для під'єднання до субд mysqlfunction greeting($log_err); #Функція яка виводить привітання або форму для залогінення

#Визначає назву та код усіх класів і видів товарів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);($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);($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'];

}

}

}

#Виводить класи і види товарівout_product_types()

{

$this->product_types($product_classes_id,$product_classes_num,$product_classes,$product_types_num);"<tr>";($i=0;$i<$product_classes_num;$i++)

{(($i+1 % 4) == 0)"</tr><tr>";"<td valign='top' align='left'>";"<b><u>".$product_classes[$i][0]."</u></b>";($j=1;$j<=$product_types_num[$i];$j++)

{"<br><a>

}"</td>";

}"</tr>";

}

#Визначає назви і коди фірм певного виду товарів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);($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'];

}

}

#Виводить назви фірм як гіперпосилання з їх кодамиout_firms($product_type_id)

{$firm_id;

$this->firms($product_type_id,$firm_title,$firm_id);

$number_of_firms = count($firm_id);($i=0;$i<$number_of_firms;$i++)

{"<a>

}

}

#Виводить список продуктів у зручному для користувача вигляді(Назва, код, картинка, короткий опис, ціна, наявність на складі)out_product_list($product_type_id,$firm_id)

{($_GET['firm_id'])

$firm_id = array($_GET['firm_id']);$firm_id;

$this->db_connect();

$number_of_firms = count($firm_id);($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);($j=0;$j<mysql_num_rows($result);$j++)

{

$product = mysql_fetch_array($result);

$product_id = $product['product_id'];

$title = $product['title'];

$result1 = mysql_query("SELECT price FROM storage_item WHERE product_id=".$product_id);(@mysql_num_rows($result1))

{

$storage_item = mysql_fetch_array($result1);

$price = $storage_item['price'];

$availability = "Є в наявності";

}

$availability = "Немає в наявності";"<tr><td rowspan='6' valign='top'><img heigth='256' src=image.php?product_id=".$product_id."></td>";"<td><a>

{"<tr><td>

}"<tr><td><br><br></td></tr><tr><td><br><br></td></tr>";

}

}

}

#Функція для знаходження та виводу товарів по слову пошуку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);(@mysql_num_rows($result))

{($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);(@mysql_num_rows($result1))

{

$storage_item = mysql_fetch_array($result1);

$price = $storage_item['price'];

$availability = "Є в наявності";

}

$availability = "Немає в наявності";"<tr><td rowspan='6' valign='top'><img heigth='256' src=image.php?product_id=".$product_id."></td>";"<td><a>

{"<tr><td>

}"<tr><td><br><br></td></tr><tr><td><br><br></td></tr>";

}

}"<p>

}

}

#Незалогінений користувачguest extends users

{db_connect()

{_connect('localhost','guest','g');_select_db('internet_shop');_query("SET NAMES 'utf8'");

}

#Блок для логіну та реєстрації і вивід повідомлень про некоректність введених данихgreeting($log_err)

{_once 'login_block.txt';(!strcmp($log_err,'empty_login'))"<font>

}

}

#Користувач залогінений як покупецьdefined_user extends users

{$login;$password;$id;db_connect()

{_connect('localhost','user','u');_select_db('internet_shop');_query("SET NAMES 'utf8'");

}defined_user($login,$password,$id)

{

$this->login = $login;

$this->password = $password;

$this->id = $id;

}greeting($log_err)

{"<div>

}

}

#Користувач залогінений як менеджерmaneger extends users

{$login;$password;$id;db_connect()

{_connect('localhost','maneger','m');_select_db('internet_shop');_query("SET NAMES 'utf8'");

}maneger($login,$password,$id)

{

$this->login = $login;

$this->password = $password;

$this->id = $id;

}greeting($log_err)

{"<div>

}

}

#Користувач залогінений як адміністраторadmin extends users

{$login;$password;$id;db_connect()

{_connect('localhost','shop_admin','administrator');_select_db('internet_shop');_query("SET NAMES 'utf8'");

}admin($login,$password,$id)

{

$this->login = $login;

$this->password = $password;

$this->id = $id;

}greeting($log_err)

{"<div>

}

}

#Клас для перевірки коректності введених данихcheck

{

#Перевірка введених даних для таблиці покупцівcustomer_check($lastname,$name,$contact_phone,$adress)

{(!strlen($lastname))"Введіть фамілію";if(!strlen($name))"Введіть ім'я";if(strlen($contact_phone) != 10 ||!is_numeric($contact_phone))"Невірно вказаний номер телефону(10 цифр)";if(!strlen($adress))"Введіть адресу";"";

}

#Перевірка введених даних для таблиці менеджерівmaneger_check($fullname,$succes_orders,$canceled_orders)

{(!strlen($fullname))"Введіть повне ім'я";if(!strlen($succes_orders) || !is_numeric($succes_orders))"Некоректно вказана або не вказана кількість вдалих угод";if(!strlen($canceled_orders) || !is_numeric($canceled_orders))"Некоректно вказана або не вказана кількість невдалих угод";

}

#Перевірка введених даних для таблиці продуктівproduct_check($title)

{(!strlen($title))"Введыть назву";

}

#Перевірка введених даних для таблиці складуstorage_item_check($product_id,$arrival_date,$product_number,$price)

{(!strlen($product_id) || !is_numeric($product_id))"Введіть коректний номер продукту";if(!strlen($arrival_date))"Введіть дату";if(!strlen($product_number) || !is_numeric($product_number))"Невірно вказана кількість товарів";if(!strlen($price) || !is_numeric($price))"Невірно вказана ціна";"";

}

#Перевірка введених даних для таблиці передзамовленьpreorder_check($lastname,$name,$contact_phone,$adress,$storage_item_id,$product_number)

{(!strlen($lastname))"Введіть прізвище";if(!strlen($name))"Введіть ім'я";if(strlen($contact_phone) != 10 || !is_numeric($contact_phone))"Введіть коректний номер телефону(10 цифр)";if(!strlen($adress))"Введіть адресу";if(!strlen($storage_item_id) || !is_numeric($storage_item_id))"Введіть коректний код товару на складі";if(!strlen($product_number) || !is_numeric($product_number))"Введіть коректну кількість замовленої продукції";"";

}

}

?>.php

<?php_once 'users.php';_start();($_GET['auto_maneger_rate'] == 1)

{

$user = $_SESSION['user'];

$user->db_connect();

$sql = "CALL internet_shop.auto_maneger_rate();";_query($sql);("location: maneger.php");

}if($_GET['auto_maneger_rate'] == 2)

{

$user = $_SESSION['user'];

$user->db_connect();

$sql = "CALL internet_shop.auto_null_deals();";_query($sql);

$sql = "CALL internet_shop.auto_maneger_rate();";_query($sql);("location: maneger.php");

}

?>

<script language="javascript">cancel_edit()

{table = document.getElementById("table");.innerHTML = "";

}addRowForm()

{add_table = document.getElementById("table");head = "<tr><td>Логін</td><td>Пароль</td><td>Повне ім'я</td></tr>";data_input = "<form action='add_row.php' method='post'><tr>";_input = data_input + "<td><input type='text' name='login'></td>";_input = data_input + "<td><input type='password' name='password'></td>";_input = data_input + "<td><input type='text' name='fullname'></td>";_input = data_input + "</tr>";_input = data_input + "<tr><td><input type = 'submit'>

}submit_editing(i)

{cur_element;_element = document.getElementsByName("maneger_id"+i);maneger_id = cur_element[0].value;_element = document.getElementsByName("fullname"+i);fullname = cur_element[0].value;_element = document.getElementsByName("succes_orders"+i);succes_orders = cur_element[0].value;_element = document.getElementsByName("canceled_orders"+i);canceled_orders = cur_element[0].value;.location.href = "edit_table.php?maneger_id="+maneger_id+"&fullname="+fullname+"&succes_orders="+succes_orders+"&canceled_orders="+canceled_orders;

}edit(i)

{cur_element;_element = document.getElementsByName("fullname"+i);_element[0].removeAttribute("readonly");_element = document.getElementsByName("succes_orders"+i);_element[0].removeAttribute("readonly");_element = document.getElementsByName("canceled_orders"+i);_element[0].removeAttribute("readonly");commit_button;_button = document.createElement("input");_button.setAttribute("type", "button");_button.setAttribute("class", "button_color button_text");_button.setAttribute("name","maneger_edit");_button.setAttribute("value","Підтвердити");_button.setAttribute("onClick","submit_editing("+i+");");edit_button = document.getElementsByName("edit"+i)[0];_button.parentNode.replaceChild(commit_button,edit_button);cancel_button = document.createElement("input");_button.setAttribute("type", "button");_button.setAttribute("class", "button_color button_text");_button.setAttribute("value","Відміна");_button.setAttribute("onClick","window.location.href='maneger.php'");delete_button = edit_button = document.getElementsByName("delete"+i)[0];_button.parentNode.replaceChild(cancel_button,delete_button);

}deleting(i)

{cur_element;_element = document.getElementsByName("maneger_id"+i);maneger_id = cur_element[0].value;.location.href = "delete_row.php?maneger_id="+maneger_id;

}

</script>

<?php_once 'site_top.txt';

$_SESSION['user']->greeting($_GET['log_err']);($_GET['error'])"<u><p align=center><font>

?>

<html>

<head>

</head>

<body>

<meta content="text/html" charset="utf-8">

<link rel="stylesheet" href="styles.css" type="text/css">

<div>

<div>

<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);($i=1;$i<=mysql_num_rows($result);$i++)

{

$row = mysql_fetch_array($result);"<tr><td>";"<input type='text' readonly name='maneger_id".$i."' value='".$row['maneger_id']."'>";"</td><td>";"<input type='text' readonly name='fullname".$i."' value='".$row['fullname']."'>";"</td><td>";"<input type='text' readonly name='succes_orders".$i."' value='".$row['succes_orders']."'>";"</td><td>";"<input type='text' readonly name='canceled_orders".$i."' value='".$row['canceled_orders']."'>";"</td><td>";"<input type='text' readonly name='rates".$i."' value='".$row['rate']."'>";(!strcmp($_SESSION['status'],'admin'))

{"</td><td>";"<input type=button>

}"</td></tr>";

}_close();

?>

</table>

<?php(!strcmp($_SESSION['status'],'admin'))

{"<br>";"<table><tr>";"<td><input type='button'>

}

?>

</div>

<?php_once 'site_bottom.txt';

?>

</div>

</body>

</html>_item.php

<?php_once 'users.php';_start();($_GET['product_id'])

{

$user = $_SESSION['user'];

$user->db_connect();

$sql = "INSERT INTO storage_item(product_id) VALUES(".$_GET['product_id'].")";_query($sql);("location: storage_item.php");

}

?>

<script language="javascript">cancel_edit()

{table = document.getElementById("table");.innerHTML = "";

}submit_editing(i)

{cur_element;_element = document.getElementsByName("storage_item_id"+i);storage_item_id = cur_element[0].value;_element = document.getElementsByName("product_id"+i);product_id = cur_element[0].value;_element = document.getElementsByName("arrival_date"+i);arrival_date = cur_element[0].value;_element = document.getElementsByName("product_number"+i);product_number = cur_element[0].value;_element = document.getElementsByName("price"+i);price = cur_element[0].value;.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;

}edit(i)

{cur_element;_element = document.getElementsByName("product_id"+i);_element[0].removeAttribute("readonly");_element = document.getElementsByName("arrival_date"+i);_element[0].removeAttribute("readonly");_element = document.getElementsByName("product_number"+i);_element[0].removeAttribute("readonly");_element = document.getElementsByName("price"+i);_element[0].removeAttribute("readonly");commit_button;_button = document.createElement("input");_button.setAttribute("type", "button");_button.setAttribute("class", "button_color button_text");_button.setAttribute("name","storage_item_edit");_button.setAttribute("value","Підтвердити");_button.setAttribute("onClick","submit_editing("+i+");");edit_button = document.getElementsByName("edit"+i)[0];_button.parentNode.replaceChild(commit_button,edit_button);cancel_button = document.createElement("input");_button.setAttribute("type", "button");_button.setAttribute("class", "button_color button_text");_button.setAttribute("value","Відміна");_button.setAttribute("onClick","window.location.href='storage_item.php'");delete_button = edit_button = document.getElementsByName("delete"+i)[0];_button.parentNode.replaceChild(cancel_button,delete_button);

}deleting(i)

{cur_element;_element = document.getElementsByName("storage_item_id"+i);customer_id = cur_element[0].value;.location.href = "delete_row.php?storage_item_id="+customer_id;

}

</script>

<?php_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>

<div>

<?php($_GET['error'])"<u><p align=center><font>

?>

<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);($i=1;$i<=mysql_num_rows($result);$i++)

{

$row = mysql_fetch_array($result);"<tr><td>";"<input type='text' readonly name='storage_item_id".$i."' value='".$row['storage_item_id']."'>";"</td><td>";"<input type='text' readonly name='product_id".$i."' value='".$row['product_id']."'>";"</td><td>";"<input id='datepicker' type='text' readonly name='arrival_date".$i."' value='".$row['arrival_date']."'>";"</td><td>";"<input type='text' readonly name='product_number".$i."' value='".$row['product_number']."'>";"</td><td>";"<input type='text' readonly name='price".$i."' value='".$row['price']."'>";(!strcmp($_SESSION['status'],'admin'))

{"</td><td>";"<input type=button>

}"</td></tr>";

}_close();

?>

</table>

</div>

<script>

$("#datepicker").datepicker({dateFormat: 'yy-mm-dd'});

</script>

<?php_once 'site_bottom.txt';

?>

</div>

</body>

</html>.php

<?php_once 'users.php';_start();

?>

<script language="javascript">cancel_edit()

{table = document.getElementById("table");.innerHTML = "";

}addRowForm()

{add_table = document.getElementById("table");head = "<tr align='center'><td>Код класу товарів</td><td>Назва</td><td>Картинки</td><td>Короткий опис</td><td>Повний опис</td><td>Характеристика</td></tr>";data_input = "<form action='add_row.php' method='post' enctype='multipart/form-data'><tr>";_input = data_input + "<td><input size='5' type='text' name='father_id'></td>";_input = data_input + "<td><input type='text' name='title'></td>";_input = data_input + "<td><input type='file' name='picture'></td>";_input = data_input + "<td><textarea cols='10' rows='10' type='text' name='small_description'></textarea></td>";_input = data_input + "<td><textarea cols='15' rows='30' type='text' name='full_description'></textarea></td>";_input = data_input + "<td><textarea cols='15' rows='30' type='text' name='characteristic'></textarea></td>";_input = data_input + "</tr>";_input = data_input + "<tr><td><input type = 'submit'>

}add_to_storage(i)

{cur_element;_element = document.getElementsByName("product_id"+i);product_id = cur_element[0].value;.location.href = "storage_item.php?product_id="+product_id;

}deleting(i)

{cur_element;_element = document.getElementsByName("product_id"+i);product_id = cur_element[0].value;.location.href = "delete_row.php?product_id="+product_id;

}

</script>

<?php_once 'site_top.txt';

$_SESSION['user']->greeting($_GET['log_err']);($_GET['error'])"<u><p align=center><font>

?>

<html>

<head>

</head>

<body>

<meta content="text/html" charset="utf-8">

<link rel="stylesheet" href="styles.css" type="text/css">

<div>

<div>

<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);($i=1;$i<=mysql_num_rows($result);$i++)

{

$row = mysql_fetch_array($result);"<tr><td>";"<input type='text' size='5' readonly name='product_id".$i."' value='".$row['product_id']."'>";"</td><td>";"<input type='text' size='5' readonly name='father_id".$i."' value='".$row['father_id']."'>";"</td><td>";"<input type='text' readonly name='title".$i."' value='".$row['title']."'>";"</td><td>";"<img src=image.php?product_id=".$row['product_id'].">";"</td><td>";"<textarea cols='10' rows='5' readonly name='small_description".$i."'>".$row['small_description']."</textarea>";"</td><td>";"<textarea cols='10' rows='5' readonly name='full_description".$i."'>".$row['full_description']."</textarea>";"</td><td>";"<textarea cols='10' rows='5' readonly name='characteristic".$i."'>".$row['characteristic']."</textarea>";(!strcmp($_SESSION['status'],'admin'))

{"</td><td>";"<input type=button>

}"</td></tr>";

}_close();

?>

</table>

<?php(!strcmp($_SESSION['status'],'admin'))

{"<br>";"<table><tr>";"<td><input type='button'>

}

?>

</div>

<?php_once 'site_bottom.txt';

?>

</div>

</body>

</html>.php

<?php_once 'users.php';_start();(!isset($_SESSION['status']))

{

$user = new guest;

$_SESSION['user'] = $user;

$_SESSION['status'] = "guest";

}

$user = $_SESSION['user'];

?>

<html>

<head>

</head>

<body>

<meta content="text/html" charset="utf-8">

<link rel="stylesheet" href="styles.css" type="text/css">

<div>

<?php_once 'site_top.txt';

$_SESSION['user']->greeting($_GET['log_err']);_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);(@mysql_num_rows($result1))

{

$storage_item = mysql_fetch_array($result1);

$price = $storage_item['price'];

$availability = "Є в наявності";

}

$availability = "Немає в наявності";"<tr><td rowspan='5' valign='top'><img heigth='256' src=image.php?product_id=".$id."></td>";"<td><a>

{"<tr><td>

}

?>

</table>

<div>

<?php(isset($_GET['error']))

{"<i><font face='arial' size=+1 color='red'>";($_GET['error'])

{'empty_name':"Введіть ім'я"; break;'empty_lastname':"Введіть прізвище"; break;'empty_phone_number':"Введіть номер телефону"; break;'empty_adress':"Введіть адрес"; break;'incorrect_phone':"Телефонний номер має містити лише 10 цийр"; break;'er':"Покупка не може бути здійснена"; break;0:

$correct = 1; break;:

$correct = 0;

}"</font></i>";

}"<br>";

?>

<form action="reg.php" method="post">

<font size="4" face="arial">

<?php(!$correct)

{(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);

}"<br>Код товару:<br><input type='text' readonly value='".$_GET['product_id']."'>

}

{"<p>

}

?>

</font>

</form>

</div>

<?php_once 'site_bottom.txt';

?>

</div>

</body>

</html>_row.php

<?php_once 'users.php';_start();

$user = $_SESSION['user'];

$user->db_connect();($_GET['customer_id'])

{

$sql = "DELETE FROM customer WHERE customer_id=".$_GET['customer_id'];

$head = "location: customer.php";

}if($_GET['maneger_id'])

{

$sql = "DELETE FROM maneger WHERE maneger_id=".$_GET['maneger_id'];

$head = "location: maneger.php";

}if($_GET['product_id'])

{

$sql = "DELETE FROM product WHERE product_id=".$_GET['product_id'];

$head = "location: product.php";

}if($_GET['storage_item_id'])

$sql = "DELETE FROM storage_item WHERE storage_item_id=".$_GET['storage_item_id'];

$head = "location: storage_item.php";

}if($_GET['preorder_id'])

{

$sql = "DELETE FROM preorder WHERE preorder_id=".$_GET['preorder_id'];

$head = "location: preorder.php";

}if($_GET['order_id'])

{

$sql = "DELETE FROM internet_shop.order WHERE order_id=".$_GET['order_id'];

$head = "location: order.php";

}if($_GET['user_id'])

{

$sql = "DELETE FROM internet_shop.user WHERE user_id=".$_GET['user_id'];

$head = "location: user.php";

}

$result = mysql_query($sql);($head);

?>

_row.php

<?php(isset($_POST['storage_item_id']) && isset($_POST['contact_phone']))

{_once 'users.php';

$preorder_id = $_POST['preorder_id'];

$customer_id = $_POST['customer_id'];(!$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);(strlen($error))

$head = "location: preorder.php?error=".$error."";

{_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();(strlen($error))

$head = "location: preorder.php?error=Товар%20або%20покупець%20з%20вказаним%20кодом%20не%20існують";

$head = "location: preorder.php";

}

}if($_POST['lastname'])

{_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);(strlen($error))

{

$head = "location: customer.php?error=".$error;

}

{_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";_close();

}

}if($_POST['title'])

{_once 'users.php';_start();

$user = $_SESSION['user'];

$user->db_connect();

$father_id = $_POST['father_id'];(!$father_id)

$father_id = 0;

$title = $_POST['title'];

$small_description = $_POST['small_description'];

$full_description = $_POST['full_description'];

$characteristic = $_POST['characteristic'];(strlen($error))

{

$head = "location: product.php?error=".$error;

}

{(is_uploaded_file($_FILES['picture']['tmp_name']))

{

$f = fopen($_FILES['picture']['tmp_name'], "rb");

$picture = fread($f, filesize($_FILES['picture']['tmp_name']));($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();(strlen($error))

$head = "location: product.php?error=".$error;

$head = "location: product.php";

}_close();

}

{_once 'users.php';

$fullname = $_POST['fullname'];(!strlen($fullname))

$fullname = "NULL";_start();

$user = $_SESSION['user'];

$user->db_connect();

$sql = "CALL add_maneger(".$fullname.")";_query($sql);

$sql = "SELECT @message AS message";

$result = mysql_query($sql);

$message = mysql_fetch_array($result);(!$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')";_query($sql);

$head = "location: maneger.php";

}

$head = "location: maneger.php?error=".$message['message'];_close();

}($head)($head);("location: admin_room.php");

?>

_table.php

<?php(isset($_GET['order_id']))

{_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'];(strlen($error))

$head = "location: order.php?error=".$error."";

{_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);(mysql_error())

$head = "location: order.php?error=".mysql_error();

{

$result = mysql_query("SELECT @message AS message");

$message = mysql_fetch_array($result);

$message = $message['message'];(strlen($message))

$head = "location: order.php?error=".$message;

$head = "location: order.php";

}

}

}if(isset($_GET['preorder_id']))

{_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);(strlen($error))

$head = "location: preorder.php?error=".$error."";

{_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);(mysql_error())

$head = "location: preorder.php?error=Відсутній%20товар%20або%20покупець%20із%20вказаним кодом";

$head = "location: preorder.php";

}

}if(isset($_GET['customer_id']))

{_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);(strlen($error))

$head = "location: customer.php?error=".$error."";

{_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";

}

}if($_GET['storage_item_id'])

{_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);(strlen($error))

{

$head = "location: storage_item.php?error=".$error;

}

{_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();(strlen($error))

$head = "location: storage_item.php?error=Відсутній%20товар%20з%20вказаним%20кодом";

$head = "location: storage_item.php";_close();

}

}if($_GET['maneger_id'])

{_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);(strlen($error))

$head = "location: maneger.php?error=".$error."";

{_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";

}

}($head);

?>

Похожие работы на - Інтернет-магазин комп’ютерної техніки Shop.ua 'ІО.Electrical'

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!