Помощь в написании студенческих работ
Антистрессовый сервис

Разработка 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', 'Приключения'

);

Показать весь текст
Заполнить форму текущей работой