Практическая работа №12

advertisement
Практическая работа №12 Разработка покупательской тележки. Обзор решения.
Существуют два основных представления системы: пользовательское (рис.1) и администраторское (рис.2)
Выполнить
платеж
Список
категорий
Рис.1 Система сайта в
пользовательком
представлении
Получить
детали
платежа
Список книг
данной
категории
Рассчитаться
Информация
по книге
Посмотреть
тележку
Меню
администратора
Вставить
книгу
Вставить
категорию
Изменить
пароль
Список
категорий
Выйти
Список
книг по
категории
Редактировать
категорию
Удалить
категорию
Рис. 2 Система сайта в администраторском
исполнении
Информац
ия по книге
Редактировать\Удалить
книгу
Тремя основными модулями данного приложения являются:
 Каталог.
 Покупательская тележка и обработка заказов (эти функции здесь объединены, поскольку тесно взаимосвязаны.)
 Администрирование.
Полный перечень файлов приложения содержится в таблице 1:
Таблица 1 Файлы приложения «Покупательская тележка»
Имя
Модуль
Описание
index.php
show_cat.php
show_book.php
show_cart.php
Каталог
Каталог
Каталог
Покупательская тележка
checkout.php
Покупательская тележка
purchase.php
process.php
login.php
Покупательская тележка
Покупательская тележка
Администрирование
logout.php
admin.php
change_password_form.php
change_password. php
insert_category_form.php
Администрирование
Администрирование
Администрирование
Администрирование
Администрирование
insert_category.php
insert_book_form. php
Администрирование
Администрирование
insert_book.php
Edit_category_form.php
Edit_category.php
Edit_book_form. Php
Администрирование
Администрирование
Администрирование
Администрирование
Edit_book.php
delete_category. Php
delete_book.php
book_sc_fns.php
admin_fns.php
book_fns.php
Администрирование
Администрирование
Администрирование
Функции
Функции
Функции
Ход работы:
Титульная страница сайта. Отображает список категорий системы.
Отображает все книги определенной категории.
Отображает данные по определенной книге.
Отображает содержимое покупательской тележки. Кроме того,
используется для добавления элементов в тележку.
Представляет пользователю все данные заказа. Принимает
информацию по доставке.
Принимает информацию по платежу от пользователя.
Обрабатывает данные платежа и добавляет заказ в базу данных.
Позволяет администратору входить в
систему для внесения изменений.
Реализует выход администратора из системы.
Главное меню администрирования.
Форма, позволяющая администратору изменять свой пароль.
Изменяет пароль администратора
Форма, позволяющая администратору добавлять в базу данных
новую категорию. Вставляет новую категорию
Вставляет новую категорию в базу данных.
Форма, позволяющая администратору добавлять в систему новую
книгу.
Добавляет новую книгу в базу данных.
Форма, позволяющая администратору редактировать категорию.
Обновляет категорию в базе данных.
Форма, позволяющая администратору редактировать информацию о
книге.
Обновление информации о книге в базе данных.
Удаляет категорию из базы данных.
Удаляет книгу из базы данных.
Набор подключаемых файлов.
Набор функций, используемых сценариями администрирования.
Набор функций хранения и извлечения данных о книгах.
1.
Внести изменения в БД Books (переименовать БД в book_sc), используя в качестве примера следующие
таблицы
Таблица сustomers
Таблица categories
Таблица admin
Таблица books
Таблица order_items
Общая стоимость всех заказов
Количество
Таблица orders
Сумма
2.
3.
4.
5.
Заполнить таблицы book, categories, admin (Y: /В-41,42/ПОКС/Практические РНР/Практическая работа
№12/info.txt)
В папке localhost/www создать каталог site, где будут храниться все файлы данной работы
В папке site создать каталог images, где будут храниться все изображения
первый сценарий (index.php) выводит список всех категорий из БД (структура главной страницы представлена
ниже)
Функция do_html_header()
Главный заголовок сайта
(верхний коллонтитул)
Функция управления содержимым
Функция do_html_footer()
Нижний коллонтитул
Схематичное представление
Всего книг
Общая сумма
Функция do_html_header()
Функция управления содержимым
Функция do_html_footer()
6.
7.
7.






8.

9.
10.


11.



12.
13.
Визуальное представление
Сценарий начинается с включения файла book_sc_fns.php, который содержит все библиотеки функций для
данного приложения.
Создать библиотеку функций book_sc_fns.php, в состав которой входят однократно вызываемые функции
db_fns.php, data_valid_fns.php, output_fns.php, book_fns.php, user_auth_fns.php, admin_fns.php, order_fns.php.
Создать сценарий output_fns.php, в котором будут содержаться функции вывода HTML-заголовка,
коллонтитула и функции управления содержимым сайта:
При помощи функции do_html_header($title = '') построить таблицу, в которой будет размещаться заголовок
сайта и информация о состоянии корзины пользователя (для информации о состоянии корзины создать только
пустые ячейки, подсчет суммы заказа будет выполнен позднее)
В теге заголовка окна браузера объявить переменную $title для динамичного изменения названия страницы
браузера: <title><?php echo $title; ?></title>
В левый угол объединенной ячейки таблицы поместить рисунок images/bannerfo.gif и оформить его ввиде
гиперссылки на главную страницу сайта index.php
Если окно браузера загрузилось, то передать управление функции do_html_heading($title)
if($title)
do_html_heading($title)
При помощи функции do_html_heading($title) вывести заголовок активного содержимого страницы
<h2><?php echo $heading; ?></h2>
При помощи функции do_html_footer() вывести завершающие HTML-дескрипторы
создать сценарий db_fns.php, который реализует подключение к БД, в котором
при помощи функции db_connect() изменить параметры подключения: имя пользователя – book_sc, пароль –
password, имя хоста – localhost, БД – book_sc
Добавить созданные сценарии в файл book_sc_fns.php
require_once('db_fns.php');
require_once('output_fns.php');
Создать сценарий index.php, в котором в первой строке при
помощи оператора reguire() загрузить библиотеку функций
book_sc_fns.php
Вызвать функцию do_html_header(), где в качестве
параметра использовать строку 'Добро пожаловать в
магазин ЛАБИРИНТ!'
Напоследок вызвать функцию do_html_footer() для вывода
Рис.1
нижнего коллонтитула.
Результат загрузки файла
представлен на рис. 1
Создать сценарий book_fns.php, в котором создать функцию get_categories() для поиска категорий книг в БД
Осуществить подключение к БД при помощи вызова функции db_connect()
Запросить в БД список категорий $query = 'select catid, catname from categories'
Результат выполнения запроса передать функции db_result_to_array($result)
$result = db_result_to_array($result);
Внести изменения в файл db_fns.php, добавив в него функцию db_result_to_array($result), которая будет
преобразовывать результат запроса к БД в массив результатов:
function db_result_to_array($result)
{
$res_array = array();
for ($count = 0; $row=mysqli_fetch_assoc($result); $count++)
$res_array[$count] = $row;
return $res_array;
}
Внести изменения в файл output_fns.php, в который добавить функцию display_categories($cat_array), которая
будет отображать массив категорий в виде списка ссылок на категории:
Функция foreach()
Синтаксис:
function display_categories($cat_array)
{
if (!is_array($cat_array))
{
echo 'В настоящий момент нет доступных категорий';
return;
}
foreach ($cat_array as $row)
{
$url = 'show_cat.php?catid='.($row['catid']);
$title = $row['catname'];
do_html_url($url, $title);
}}
 В файл output_fns.php добавить также функцию do_html_URL($url,
$name) для вывода URL и дескриптора новой строки
<a href="<?php echo $url; ?>"><?php echo $name; ?></a><br />
14. Внести изменения в файл index.php, добавив после вызова функции
 Извлечь категории книг из БД: $cat_array = get_categories()
 Отобразить категории в виде ссылок при помощи вызова функции
display_categories($cat_array)
 Результат запуска файла index.php представлен на рис.2
foreach(array_expression as $value) statement
Функция foreach() даёт простой способ
итерирования по массиву. Внутренний указатель
циклически проходит по массиву, заданному в
array_expression. При каждом проходе значение
текущего элемента присваивается переменной
$value, а внутренний указатель массива
передвигается на единицу (поэтому при
следующем проходе вы просмотрите значение
следующего элемента).
рис.2
function db_result_to_array($result)
{
$res_array = array();
for ($count = 0; $row = $result->fetch_assoc(); $count++)
$res_array[$count] = $row;
return $res_array;
}
Download