Создание базы данных для интернет- магазина

Автор работы: Пользователь скрыл имя, 28 Марта 2014 в 10:01, курсовая работа

Краткое описание

В ходе выполнения курсовой работы реализованы следующие ф-ии интернет магазина:
БД хранящая информацию, система регистрации пользователя, верификация email адреса(проверка на подлинность), система оформления заказов на любое кол-во товаров, административная панель управления позволяющая управлять базой данных товаров
Реализована система защиты от взлома, запрос логина и пароля для входа в административную панель, также реализована дополнительная защита с помощью проекта Recaptcha от копании Google, система защиты пользователького интерфейса построена на проверке подлинности email адреса и возможностью смены пароля
Для защиты от спама поисковые формы защищены от ввода спец символов MySql, с помощью функции HtmlSpecialChars

Прикрепленные файлы: 1 файл

Курс КИС.doc

— 490.50 Кб (Скачать документ)

 

 

 

7) Подкатегории (subcategory)

Название поля в БД

Название поля на русском

Комментарии

1

subcategory_id

Код подкатегории (PK)

Первичный ключ

2

category_id

Код категории (FK)

Внешний ключ

3

subcategory_title

Название подкатегории

 

4

subcategory_description

Описание подкатегории

 

5

subcategory_show

Отображение подкатегории на сайте (да / нет)

 

6

seo_description

SEO – описание подкатегории

 

7

seo_keywords

SEO – ключевые слова

 

8) Производители(manufacturer)

Название поля в БД

Название поля на русском

Комментарии

1

manufacturer_id

Код производителя(PK)

Первичный ключ

2

manufacturer_title

Наименование

 

9) Активация пользователя(user_activation)

Название поля в БД

Название поля на русском

Комментарии

1

record_id

Код записи(РК)

Первичный ключ

2

user_id

Код пользователя(FK)

Внешний ключ

3

activation_code

Код активации

 

4

activation_status

Статус активации

 

10) Восстановление e-mail пользователя(user_recovery)

Название поля в БД

Название поля на русском

Комментарии

1

recovery_id

Номер восстановления(PK)

Первичный ключ

2

user_id

Код пользователя(FK)

Внешний ключ

3

recovery_code

Код восстановления

 

4

recovery_creation_datetime

Дата и время создания кода

 

5

recovery_status

Статус восстановления

 

11) Журнал заходов в панель управления сайта(log_admin_logins)

Название поля в БД

Название поля на русском

Комментарии

1

log_id

Код записи(РК)

Первичный ключ

2

log_datetime

Дата и время входа

 

3

log_ip

ИП адрес входа

 

 

 

12) Журнал поиска на сайте(log_site_search)

Название поля в БД

Название поля на русском

Комментарии

1

log_id

Код записи(РК)

Первичный ключ

2

log_search_text

Текст поисковой фразы

 

3

log_datetime

Дата и время поиска

 

13) Заказ (общая) (order_common)

Название поля в БД

Название поля на русском

Комментарии

1

order_id

Код заказа (PK)

Первичный ключ

2

user_id

Код пользователя (FK)

Внешний ключ

3

order_creation_datetime

Дата и время создания заказа

 

4

order_summ

Общая сумма заказа

 

5

order_fio

ФИО

 

6

order_phone

Телефон

 

7

order_city

Город

 

8

order_delivery_type

Тип доставки

 

9

order_delivery_address

Адрес доставки

 

10

order_comments

Комментарии и пожелания

 

11

order_status

Статус заказа (В обработке / Отменён / Исполнен)

 

 

14) Заказ (товары) (order_goods)

Название поля в БД

Название поля на русском

Комментарии

1

record_id

Код записи (PK)

Первичный ключ

2

order_id

Код заказа (FK)

Внешний ключ

3

goods_id

Код товара (FK)

Внешний ключ

4

goods_quantity

Количество товара по позиции

 

5

goods_status

Статус (пока не используется)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Перечень форм БД:

В административном интерфейсе реализованы следующие формы:

  1. Добавление\изменение\удаление категорий товаров(при удалении категории удаляются также все подкатегории, и товары этих подкатегорий)форма включает в себя название и описание категории
  2. Добавление\изменение\удаление подкатегорий товаров(при удалении подкатегории удаляются также все товары связанные с этой подкатегорией), форма содержит селектор категории к которой принадлежит подкатегория, название и описание подкатегории
  3. Добавление\изменение\удаление товаров, форма содержит название товаров, 2 селектора(категории\подкатегории производитель), цена товара в рублях, кол-во товара в наличии, описание товара
  4. Пользователи, форма содержит отображаемую информацию о пользователях, ФИО, телефон, адрес электронной почты, статус активации аккаунта пользователя, город и т.д(редактировать данные пользователя можно только в пользовательском интефейсе, и только самим пользователям,этот интерфейс реализован отдельно)
  5. Добавление\изменение\удаление производителя,форма содержит наименование производителя

Некоторые формы рассмотрим подробнее ниже:

 

1)Добавление категории товаров:

if($_GET['action']=='category_add_go') {

$category_title=HtmlSpecialChars($_POST['category_title']);

$category_description=HtmlSpecialChars($_POST['category_description']);

mysqli_query($connect, "INSERT INTO category (category_title, category_description, category_show) VALUES ('".$category_title."', '".$category_description."', 'Да')");

echo'<meta http-equiv=Refresh content="0; url=index.php?action=category&notify=Категория добавлена&notify_type=good">';

};

Форма запроса содержится в отдельном пхп файле, пример формы запроса:

<form action="index.php?action=category_add_go" method="POST">

<table border="0" style="margin-left:30px;" cellpadding="1" width="300">

<tr>

<td colspan="2">

Название категории:

</td>

</tr>

<tr>

<td colspan="2"><input type="text" style="width:100%;padding:5px;" name="category_title"/></td>

</tr>

<tr><td colspan="2">&nbsp;</td></tr>

<tr><td colspan="2">Описание категории:</td></tr>

<tr>

<td colspan="2">

<textarea name="category_description" style="width:100%;padding:5px;"></textarea>

</td>

</tr>

<tr>

<td colspan="2" align="right">

<a href="index.php?action=category" style="color:#0066CC;">Отмена</a>

<input type="submit" style="padding:5px;margin-left:10px;" value="Создать категорию"/>

</td>

</tr>

</table>

</form>

 

Данный запрос добавляет в БД новую категорию товаров,Название категории и её описание и отображение категории на сайте

 

2)Добавление подкатегории товаров

$category_id=HtmlSpecialChars($_POST['category_id']);

 

$subcategory_title=HtmlSpecialChars($_POST['subcategory_title']);

 

$subcategory_description=HtmlSpecialChars($_POST['subcategory_description']);

 

mysqli_query($connect, "INSERT INTO subcategory (category_id, subcategory_title, subcategory_description, subcategory_show) VALUES (".$category_id.", '".$subcategory_title."', '".$subcategory_description."', 'Да')");

echo'<meta http-equiv=Refresh content="0; url=index.php?action=subcategory&notify=Подкатегория создана&notify_type=good">';

 

Заполнение формы происходит на отдельной php страничке(пример указан выше) где расположены указанные переменные для заполнения,в результате выполнения запроса добавляется новая подкатегория

Так как каждая подкатегория обязана иметь свою категорию,в форме заполнения присутствует селектор выбора категории:

<select name="category_id" style="width:100%;">

<?php

$query=mysqli_query($connect,"SELECT category_id,category_title FROM category");

for ($c=0; $c<mysqli_num_rows($query); $c++)

{

$row = mysqli_fetch_array($query, MYSQLI_ASSOC);

echo'<option value="'.$row[category_id].'">'.$row[category_title].'</option>';

};

?>

</select>

3)Добавление товара, включает в  себя поля: Название товара,цена, кол-во товара в наличии, описание ,мета-теги для seo оптимизации,и два селектора «категория+подкатегория(в 1 селекторе так как каждая подкатегория уже имеет категорию к которой относится) и селектор производителя(выбирается из имеющихся в БД)

<form action="index.php?action=good_add_go" method="POST">

<tr>

<td width="210">Название товара:</td>

<td><input type="text" name="title" style="padding:2px;width:100%;"/></td>

</tr>

<tr>

<td>Подкатегория, категория:</td>

<td>

<select style="padding:2px;width:100%;" name="subcategory">

<option value="0">Выберите..</option>

<?php

$query = mysqli_query($connect,"SELECT subcategory.subcategory_id, subcategory.subcategory_title, category.category_title FROM subcategory INNER JOIN category ON category.category_id = subcategory.category_id ORDER BY category.category_title");

for ($c=0; $c<mysqli_num_rows($query); $c++)

{

$row = mysqli_fetch_array($query, MYSQLI_ASSOC);

echo'<option value="'.$row[subcategory_id].'">'.$row[category_title].': '.$row[subcategory_title].'</option>';

};

?>

</select>

</td>

</tr>

<tr>

<td>Производитель товара:</td>

<td>

<select name="manufacturer" style="padding:2px;width:100%;">

<option value="">Выберите..</option>

<?php

$query=mysqli_query($connect,"SELECT manufacturer_id,manufacturer_title FROM manufacturer ORDER BY manufacturer_title");

for ($c=0; $c<mysqli_num_rows($query); $c++)

{

$row = mysqli_fetch_array($query, MYSQLI_ASSOC);

echo'<option value="'.$row[manufacturer_id].'">'.$row[manufacturer_title].'</option>';

};

?>

</select>

</td>

</tr>

<tr>

<td>Цена в рублях:</td>

<td><input type="text" name="cost" style="padding:2px;width:100%;"/></td>

</tr>

<tr>

<td>Товара в наличии:</td>

<td><input type="text" name="in_stock" style="padding:2px;width:100%;"/></td>

</tr>

<tr>

<td colspan="2">Описание товара:</td>

</tr>

<tr>

<td colspan="2"><textarea name="description" id="pole1" style="width:100%;height:400px;background-color:White!important;"></textarea></td>

</tr>

<tr>

<td colspan="2"><br/>

Мета-теги (SEO):<br/>

<textarea name="seo_metatags" style="width:100%;height:70px;font-size:10.4pt;font-style:italic;font-family:Calibri,Helvetica;"></textarea><br/>

<span style="color:Gray;font-style:italic;">заполняется главным программистом</span>

</td>

</tr>

<tr>

<td></td>

<td></td>

</tr>

<tr>

<td colspan="2" align="right">

<a href="index.php?action=good" style="color:#0066CC;">Отмена</a>

<input type="submit" value="Добавить товар" style="margin-left:14px;padding:2px;"/><br/><br/>

</td>

</tr>

</table>

</form>

 

После получения данных задествуется переменная good_add_go и выполняются следующие действия:

if($_GET['action']=='good_add_go')

{

$title=HtmlSpecialChars($_POST['title']);

$subcategory_id=HtmlSpecialChars($_POST['subcategory']);

$manufacturer_id=HtmlSpecialChars($_POST['manufacturer']);

$cost=HtmlSpecialChars($_POST['cost']);

$in_stock=HtmlSpecialChars($_POST['in_stock']);

$description=HtmlSpecialChars($_POST['description']);

$seo_metatags=HtmlSpecialChars($_POST['seo_metatags']);

mysqli_query($connect,"INSERT INTO goods (subcategory_id,title,description,cost,creation_datetime,goods_show,in_stock,manufacturer_id, seo_metatags) VALUES (".$subcategory_id.",'".$title."','".$description."',".$cost.",NOW(),'yes',".$in_stock.",".$manufacturer_id.", '".$seo_metatags."')");

Информация о работе Создание базы данных для интернет- магазина