Разработка Web-приложения «Магазин книг»
Исходные данные о магазине: обычный академический магазин, который работает с поставщиками и покупателями, соответственно есть и продавцы. Книги хранятся непосредственно в помещении магазина и расставляются по жанрам. Целью данной работы является закрепление навыков по созданию Web-приложений, построению XSL-таблиц стилей трансформации, программной реализации XSL-трансформации на основе классов… Читать ещё >
Разработка Web-приложения «Магазин книг» (реферат, курсовая, диплом, контрольная)
1. Описание предметной области
2. Разработка Web-приложения «Магазин книг»
2.1 Программирование XSL-таблиц стилей
2.2 Программирование серверных сценариев
2.3 Результаты работы Web-приложения
Заключение
Приложение. «SQL-код для создания БД „Магазин книг“ („Bookstore“)»
В последние несколько лет все большее количество сайтов стремится разделить информационное наполнение страниц и дизайн посредством использования XML-разметки данных и их XSL-преобразования.
Целью данной работы является закрепление навыков по созданию Web-приложений, построению XSL-таблиц стилей трансформации, программной реализации XSL-трансформации на основе классов серверных сценариев Web-приложений.
1. Описание предметной области
В данной расчетно-графической работе в качестве предметной области рассматривается магазин книг.
Исходные данные о магазине: обычный академический магазин, который работает с поставщиками и покупателями, соответственно есть и продавцы. Книги хранятся непосредственно в помещении магазина и расставляются по жанрам.
Покупатель, приходя в магазин, обращается к продавцу, который в свою очередь предлагает ему тот или иной товар, после чего при осуществлении покупки покупатель получает от продавца чек и забирает понравившиеся книги. Если необходимых книг не оказывается в магазине, то можно составить заявку на поставку товара.
Так же у покупателя есть возможность выбрать книги с помощью web-приложения, в котором содержится вся информации о товарах книжного магазина: названия книг, авторы, предлагаемые жанры, стоимость.
2. Разработка Web-приложения «Магазин книг»
2.1 Программирование XSL-таблиц стилей
В ходе выполнения работы нами были созданы XSL-спецификации трансформации «Default.xsl» и «Browse.xsl». Листинги программного кода данных файлов представлены ниже:
1. Листинг кода файла «Default.xsl»:
2. Листинг кода файла «Browse.xsl»:
Магазин книг | ||||||||||||
Просмотр | ||||||||||||
|
2.2 Программирование серверных сценариев
На данном этапе работы была применена «технология PHP и СУБД MySQL». Были созданы следующие файлы:
1. «Index.php»:
$def_charset = «Content-Type: text/html; charset=utf-8» ;
header ($def_charset);
$link = @mysql_connect («localhost», «root») or die («Невозможно соединиться с сервером»);
$db=@mysql_select_db («Вookstore») or die («Нет такой базы данных»);
@mysql_query («SET SESSION character_set_results = cp1251;»);
@mysql_query («SET SESSION Character_set_client = cp1251;»);
@mysql_query («SET SESSION Character_set_results = cp1251;»);
@mysql_query («SET SESSION Collation_connection = cp1251_general_ci;»);
@mysql_query («SET SESSION Character_set_connection = cp1251;»);
$g_query="select `ID`, `name` from `Genre`" ;
function createXMLElem ($dom, $parent, $row, $name)
{
$elem = $dom→createElement ($name);
$elem = $parent→appendChild ($elem);
foreach ($row as $fieldname => $fieldvalue)
{
$val = iconv ('windows-1251', 'utf-8', $fieldvalue);
$elem→setAttribute ($fieldname,$val);
}
return $elem;
}
$xml = new DOMDocument ('1.0');
$root = $xml→createElement ('Вookstore');
$root = $xml→appendChild ($root);
$g=mysql_query ($g_query);
while ($g_row = mysql_fetch_assoc ($g))
{
$g_elem = createXMLElem ($xml, $root, $g_row, 'Genre');
}
echo $xml→save («newfile.xml»);
?>
При проверке работоспособности созданного PHP-сценария результат, представленный в файле, имел следующий вид:
<�Вookstore>
</Вookstore>
2. «Browse.php»:
$def_charset = «Content-Type: text/html; charset=utf-8» ;
header ($def_charset);
$link = @mysql_connect («localhost», «root») or die («Невозможно соединиться с сервером»);
$db=@mysql_select_db («Вookstore») or die («Нет такой базы данных»);
@mysql_query («SET SESSION character_set_results = cp1251;»);
@mysql_query («SET SESSION Character_set_client = cp1251;»);
@mysql_query («SET SESSION Character_set_results = cp1251;»);
@mysql_query («SET SESSION Collation_connection = cp1251_general_ci;»);
@mysql_query («SET SESSION Character_set_connection = cp1251;»);
function createXMLElem ($dom, $parent, $row, $name)
{
$elem = $dom→createElement ($name);
$elem = $parent→appendChild ($elem);
foreach ($row as $fieldname => $fieldvalue)
{
$val = iconv ('windows-1251', 'utf-8', $fieldvalue);
$elem→setAttribute ($fieldname,$val);
}
return $elem;
}
$g = $_POST['g'];
$g_query="SELECT `ID`, `name` FROM `Genre` where `ID`=".$g;
$b_query="SELECT `fio`, `name`, `price`, `genre` FROM `Books`" ;
$xml = new DOMDocument ('1.0');
$root = $xml→createElement ('Вookstore');
$root = $xml→appendChild ($root);
$g=mysql_query ($g_query);
while ($g_row = mysql_fetch_assoc ($g))
{
$g_elem = createXMLElem ($xml, $root, $g_row, 'Genre');
$g1 = $g_row['ID'];
$b=mysql_query ($b_query);
while ($b_row = mysql_fetch_assoc ($b))
{
$g2 = $s_row['genre'];
if ($g1==$g2)
{
$b_elem = createXMLElem ($xml, $g_elem, $b_row, 'Books');
}
}
}
echo $xml→save («file.xml»);
?>
При проверке работоспособности созданного PHP-сценария результат, представленный в файле, имел следующий вид:
2.3 Результаты работы Web-приложения
Рис. 1. Web-приложение «Книжный магазин»
Рис. 2. Пример запроса 1
Рис. 3. Результаты запроса 1
Рис. 4. Пример запроса 2
Рис. 5. Результаты запроса 2
Заключение
web приложение программирование
Выполнение расчетно-графической работы было осуществлено в два этапа: 1) программирование XSL-таблиц стилей для генерации страниц Web-приложения; 2) программирование серверных сценариев для получения XML-данных из базы данных «Вookstore» и применения к ним стилей XSL-трансформации.
В итоге нами было разработано Web-приложение «Книжный магазин», состоящее из двух Web-страниц. На первой странице пользователь должен выбирать жанр произведений из раскрывающегося списка (рис. 1, 2, 4). Передача выбранных пользователем параметров на сервер выполняется нажатием на ссылку «Просмотр». В результате выполняется переход на страницу, где отображается информация о книгах выбранного жанра (рис. 3, 5). Результаты работы Web-приложения представлены в виде скриншотов.
Таким образом, нами были закреплены навыки XSL-трансформации XML-данных в Web-приложениях.
Приложение
SQL-код для создания БД «Магазин книг» («Вookstore»)
CREATE DATABASE `Вookstore` DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci;
CREATE TABLE `Genre` (
`ID` VARCHAR (15) CHARACTER SET cp1251 COLLATE cp1251_general_ci NOT NULL ,
`name` VARCHAR (27) CHARACTER SET cp1251 COLLATE cp1251_general_ci NOT NULL ,
PRIMARY KEY (`ID`)
) ENGINE = MYISAM ;
CREATE TABLE `Books` (
`ID` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`fio` VARCHAR (27) NOT NULL ,
`name` VARCHAR (60) NOT NULL ,
`price` VARCHAR (10) NOT NULL ,
`genre` VARCHAR (15) NOT NULL ,
FOREIGN KEY (`Genre`) REFERENCES Genre (`ID`)
) ENGINE = MYISAM CHARACTER SET cp1251 COLLATE cp1251_general_ci
INSERT INTO `Genre` (`ID`, `name`)
VALUES (
'Приключения', 'приключения'
), (
'Детектив', 'детектив'
);
INSERT INTO `Genre` (`ID`, `name`)
VALUES (
'Роман', 'любовный роман'
), (
'Мемуары', 'биография и мемуары'
);
INSERT INTO `Books` (`ID`, `fio`, `name`, `price`, `genre`)
VALUES (
NULL, 'Марк Твен', 'Приключения Гекльберри Финна', '$ 5.49', 'Приключения'
), (
NULL, 'Сесилия Ахерн', 'Время моей жизни', '$ 5.00', 'Роман'
);
INSERT INTO `Books` (`ID`, `fio`, `name`, `price`, `genre`)
VALUES (
NULL, 'Шифф Стейси', 'Клеопатра', '$ 6.10', 'Мемуары'
), (
NULL, 'Натаниэль Готорн', 'Мраморный фавн', '$ 10.95', 'Детектив'
);
INSERT INTO `Books` (`ID`, `fio`, `name`, `price`, `genre`)
VALUES (
NULL, 'Майкл Морпупго', 'Боевой конь', '$ 6.10', 'Приключения'
);