- •Содержание
- •Введение
- •1 Проектирование электронного магазина (эм) и базы данных на примере оао «управляющая компания холдинга «забудова»
- •1.1 Описание предметной области и структуры эм оао «Управляющая компания холдинга «Забудова»
- •1.2 Построение концептуальной модели базы данных оао «Управляющая компания холдинга «Забудова»
- •1.3 Построение логической модели данных оао «Управляющая компания холдинга «Забудова»
- •2 Реализация в интерактивной среде интернет модели базы данных оао «управляющая компания холдинга «забудова»
- •2.1 Краткая характеристика предприятия оао «Управляющая компания холдинга «Забудова»
- •2.2 Построение на языке sql средствами субд MySql физической модели данных оао «Управляющая компания холдинга «Забудова»
- •2.3 Разработка с использованием Вэб–интерфейса, созданного на языке программирования php, алгоритма работы эм оао «Управляющая компания холдинга «Забудова» и его программная реализация
- •3 Обоснование и расчет экономической эффективности разработки и внедрения электронного магазина оао «управляющая компания холдинга «забудова»
- •3.1 Элементы бизнес–плана по внедрению базы данных и электронного магазина оао «Управляющая компания холдинга «Забудова»
- •3.2 Расчет капитальных и текущих затрат
- •3.3 Оценка эффективности предложенных мероприятий
- •Заключение
- •Список использованных источников
- •Приложение
2.3 Разработка с использованием Вэб–интерфейса, созданного на языке программирования php, алгоритма работы эм оао «Управляющая компания холдинга «Забудова» и его программная реализация
Кратко опишем взаимодействие web-страницы с базой данных. База данных находится локально на нашем web-сервере. На web-странице размещается форма, в которую пользователь вводит свой запрос или те данные, которые нужно передать. После отправки данных из формы на сервер последний запускает написанную нами программу с помощью РНР-языка, которая извлекает данные, переданные пользователем. Далее программа формирует запрос на языке SQL для выборки или изменения данных, а СУБД делает всё остальное. Обычно такие программы создаются в виде CGI-сценариев. Возможно, также встраивание программы прямо в HTML-страницу.
Основная задача РНР-языка – интерпретация сценариев (программ) для генерации web-страниц, отсылаемых программе-клиенту (браузеру). Сценарий (скрипт) может содержать как РНР–, так и HTML-код. HTML-код пересылается в литеральном представлении, а РНР– код выполняется, и клиенту отсылается результат его работы. Таким образом, пользователь никогда не видит РНР– кода. Для полноценной работы с РНР необходимо кроме самого языка ещё и web-сервер. В качестве web-сервера можно использовать Apache. Данный интернет-магазин реализуем с использованием языка гипертекстовой разметки html, языка программирования php и СУБД MySQL. Главная часть функционирования сайта – работа с базой данных. Листинг базы данных пишется в Текстовом редакторе Блокнот и сохраняется под именем SHEMA.
Для работы с базой данных через web-интерфейс необходимо выполнить следующую последовательность действий:
Соединиться с сервером баз данных;
Выбрать базу данных;
Выполнить SQL-запрос;
Вывести данные, полученные в результате запроса [3, с. 86].
Необходимо написать PHP- скрипты, встроенные в HTML – страницы и сохранить их с расширением *.php. Сами скрипты, сформированные из ряда инструкций, находятся на сервере и их содержимое посетителю Интернет магазина просмотреть невозможно. При активизации PHP- скрипта серверная программа выполняет команды php этого скрипта и результат возвращает программе-браузеру. Таким образом, посетитель Интернет магазина видит только результат выполнения программы. Соединение с сервером базой данных выполняется функцией mysql_connect("localhost","root",""); где localhost – имя узла (localhost), на котором размещается сервер MySQL, имя пользователя (root), и пароль ("") – в данном случае без пароля. При успешном соединении функция возвращает идентификатор связи с БД, а в случае неудачи – значение false.
Выбор базы данных выполняется функцией mysql_select_db("building materials_mag"); и означает «выбрать базу данных building materials_mag»; для выполнения запроса к БД используется функция: $query1="select*from vid"; – означает «выбрать из таблицы vid». Далее выполнить запрос: $res1=mysql_query($query1); т.е. функции передаётся запрос, который необходимо выполнить, при успешном выполнении функция возвращает идентификатор результата. Идентификатор результата – это ключ доступа к возвращённым запросом строкам, которых может быть ноль, одна и более: $num_vid=mysql_num_rows($res1); – сообщает количество строк, возвращённых запросом. Рассмотрим сценарий, отображающий главную страницу index.php.
Рисунок 2.2 – Внешний вид главной страницы index.php
Коды html и php-коды сценариев пишутся в Текстовом редакторе Блокнот, php-коды сценариев встраиваются в html-страницы и сохраняются с расширением* php. Рассмотрим сценарий, отображающий главную страницу index.php, на которой производим выборку видов товаров:
<?php
mysql_connect("localhost","root",""); //Открытие соединения с MySQL, где localhost - имя компьютера, root- имя пользователя, ""-без пароля
mysql_select_db("building materials_mag "); //Выбрать базу данных building materials_mag
print"<fontface= Сategory of building material = 8 items = sukhie-stroitelnye-smesi><b><h8> <center>Производитель</center></h8></b></font><br>;
$query1="select * from vid";//Выбрать все записи из таблицы vid
$res1=mysql_query($query1);//Получить результат на запрос1
$num_vid=mysql_num_rows($res1);//Обработка до тех пор, пока переменная $i не достигнет значений всех строк $res1
$i=0;//Переменной $i присваивается значение 0
while($i<$num_vid){//Присваивание переменной i значения, равное значению номера из таблицы vid
$vid_id=mysql_result($res1,$i,"vid_id");//Присваивание переменным значений (номер) из таблицы vid_id
$name=mysql_result($res1,$i,"nazvanie");//Присваивание переменным значений (название) из таблицы vid_id
print" <a href=\"vid.php?vid=$vid_id\">$name</a><br>";// Идентификатор вида передается через адресную строку; вывести на печать значения из таблицы vid полей vid_id и nazvanie, в браузере появятся наименования сухих строительных смесей и соответствующий номер значения поля vid_id; ссылка на страницу vid.php
<a href="vid.php?vid=1">Сухие строительные смеси/клей для плитки</a><br> <a href="vid.php?vid=2">Все для малярных работ</a> <a href="vid.php?vid=3"> Клей для напольных покрытий</a> <a href="vid.php?vid=4">Защита и обработка древесины</a>//Где номера поля vid соответствуют названиям поля nazvanie
$i++;//Увеличение шага переменной $i на +1
}
?>
<! Конец PHP-скрипта !>
При нажатии, например, на ссылку Сухие строительные смеси/клей для плитки, пользователь попадает на следующую РНР страницу vid.php. Рассмотрим сценарий, отображающий внешний вид каталога строительных материалов, который показан на рисунке 2.3 выполняется запрос 2.
Рисунок 2.3 - Внешний вид каталога строительных материалов (страница vid.php)
Рассмотрим сценарий, отображающий страницу vid.php.
<?
# Создаём запрос 2 к базе данных (выбор всех товаров из выбранного ранее класса) #
$query2="select * from building materials where vid_id = '$vid'";
#Делаем запрос 2 #
$res2=mysql_query($query2);
#Получаем результат запроса 2 #
$num_row2=mysql_num_rows($res2);
#задаём счётчик цикла #
$i=0;
#Цикл выполняется до тех пор, пока не достигнет значения всех строк
while($i<$num_row2){
$ building materials_id = mysql_result($res2,$i," building materials_id"); Переменной $ building materials_id присваивается соответствующий идентификационный номер поля building materials_id.
$nazvanie = mysql_result($res2,$i,"nazvanie");");//Переменной $nazvanie присваивается соответствующее наименование из поля nazvanie
$opisanie = mysql_result($res2,$i,"opisanie"); //Переменной $opisanie присваивается соответствующее описание наименования из поля opisanie.
$strana = mysql_result($res2,$i,"strana"); //Переменной $strana присваивается соответствующая страна изготовления строительного материала из поля strana.
$cena = mysql_result($res2,$i,"cena"); //Переменной $cena присваивается соответствующая цена строительного материала поля cena.
$vid_id= mysql_result($res2,$i,"vid_id"); //Переменной vid_id присваивается соответствующий идентификационный номер строительного материала поля vid_id.
$images = mysql_result($res2,$i,"images"); //Переменной $image присваивается соответствующая картинка наименования строительного материала поля image.
echo "Наименование:<b>$ building materials_id</b><br>"; //Вывести в браузер для просмотра слово Наименование и соответствующий ему номер поля building materials_id.
echo "Название:<b>$nazvanie</b><br>"; //Вывести в браузер слово Название и соответствующее ему название строительного материала поля nazvanie.
echo "Описание:<b>$opisanie</b><br>"; //Вывести в браузер слово Описание и соответствующее ему описание строительного материала поля opisanie.
echo "Страна происхождения:<b>$strana</b><br>"; //Вывести в браузер выражение Страна происхождения и соответствующую ему страну производства строительного материала поля strana.
echo "Цена:<b>$cena руб.</b><br>"; //Вывести в браузер слово Цена и соответствующую ему цену строительного материала поля cena.
echo "Номер вида:<b>$vid</b>"; //Вывести в браузер выражение Номер вида и соответствующий ему номер вида строительного материала поля vid.
echo "<img src=$images.jpg> "; // Вывести в браузер картинку из поля image, src – указывает имя графического файла с расширением*.jpg, картинки находятся в той же директории.
# Ссылка за форму заказа с передачей id товара #
echo" <ahref=\"zakaz.php? building materials=$ building materials_id\">Заказать</a><br><hr size=1 items =#00099>";//Идентификатор наименования передаётся через адресную строку, при нажатии на ссылку Купить пользователь попадает на страницу zakaz.php, где может оформить заказ, заполнив поля формы.
$i++;
}
?>
Рассмотрим сценарий, отображающий форму заказа строительного материала, который записан на странице zakaz.php.
<! Создаём форму заказа со ссылкой на файл обработки заказа !>
<h2>Для оформления заказа заполните форму</h2>
<form action=zakaz1.php method=post><!--Открывающий тег формы, form action определяет, где находится обработчик формы: zakaz1.php, и каким образом данные формы будут отправляться обработчику: методом post-->
<center><h2>Заказываемое наименование строительного материала:</h2></center><!—Заказываемый товар, выравнивание по левому краю, шрифт h2-->
<font face=Arial klej-dlya-plitki color=blue ><b><h3> <b> Клей для плитки "Knauf"</h3></b></font><!--Название наименования строительного материала; шрифт Arial, клей для плитки, цвет шрифта синий, жирный-->
<input type=hidden name= building materials_id value="5"><!--input - для внесения информации пользователем, hidden name= building materials_id равен номеру 5 поля building materials_id - определяет скрытый элемент данных, не виден пользователем и передаётся обработчику без изменения-->
<p><h3>Заказываемое наименование строительного материала:<input type=text name=kolvo size=1><!--Ввод строки артикула заказываемого наименования строительного материала -->
<p><h3>ФИО:<input type=text name=fio><br><!--Ввод строки Фамилия-имя-отчество заказчика строительного материала -->
<h3>Адрес:<textarea name=address cols=25 rows=2></textarea><!--Окно ввода адреса заказчика для доставки строительного материала -->
<h3>Телефон:<input type=text name=phone><!--Ввод строки контактного номера телефона заказчика строительного материала -->
<h3>Электронный адрес:<input type=text name=email><!--Ввод строки электронного адреса заказчика строительного материала -->
<input type=submit value="Заказать"><!--Кнопка "Заказать", при нажатии на которую запускается процесс передачи информации из формы обработчику-->
<input type=reset value="Очистить"><!--Кнопка "Очистить", при нажатии на которую очищаются поля формы-->
</form><!--Закрывающий тег формы-->
Для оформления заказа покупателю необходимо нажать кнопку Заказать, после чего открывается форма для оформления заказа, показанная на рисунке 2.4. При этом информация записывается в базу данных с помощью sql-оператора INSERT.
Рассмотрим сценарий, который показывает пользователю, что его заказ внесён в базу данных, который представлен на странице zakaz1.php.
Таблицы pokupatel, schet, schetpok записаны в том порядке, в котором они между собой связаны внешними ключами, поэтому функцией last_insert значение поля одной таблицы вставляется в соответствующее поле (внешний ключ) другой таблицы.
Рисунок 2.4 – Сценарий, реализующий форму заказа строительных материалов (страница zakaz.php)
<! Начало PHP-скрипта !><?
$query2="insert into pokupatel values ('','$fio','$address','$phone','$email')";// Запрос2=вставить в таблицу pokupatel значения: '' – идентификационный номер ниаменования; '$fio' – в переменную $fio вставить Фамилию-имя-отчество покупателя строительного материала; '$address' – в переменную $address вставить адрес покупателя строительного материала; '$phone' – в переменную $phone вставить номер телефона; '$email' – в переменную $email вставить адрес электронной почты.
$res2=mysql_query($query2);// Запрос, который необходимо выполнить
$last_insert=mysql_insert_id();//Определяем последний присвоенный id
$data_oforml=date("y-m-d");//Дата оформления заказа заносится в переменную $data_oforml и записывается в порядке ("y-m-d"), где "y"(год) 4 символа, "m"(месяц) 2 символа, "d"(день) 2 символа, например, 2015.01.25
$query3="insert into schet values ('','$data_oforml','$last_insert')";//Запрос3=вставить в таблицу schet значения: ''– номер счёта; '$data_oforml'– в переменную $data_oforml вставить дату оформления заказа наименования строительного материала; '$last_insert' – соответствует полю pokupatel_id (является внешним ключом) и означает: вставить номер покупателя из таблицы pokupatel.
$res3 = mysql_query($query3);// Запрос, который необходимо выполнить
$last_insert = mysql_insert_id();//Определяем последний присвоенный id
$query4="insert into schetpok values ('','$last_insert','$ building materials_id','$kolvo')";// Запрос4=вставить в таблицу schetpok значения: '' – номер счёта покупателя; '$last_insert' – соответствует полю schet_id (является внешним ключом) и означает: вставить номер счёта из таблицы schet; $ building materials_id – в переменную $ building materials_id вставить идентификационный номер заказанной модели; '$kolvo' – в переменную $kolvo вставить количество заказанных наименований строительных материалов.
$res4 = mysql_query($query4);//Делаем запрос 4
?>
<! Конец PHP-скрипта !>
Таким образом, на практике физическая модель базы данных была реализована с помощью средств СУБД MySQL, а так же PHP. Это позволило создать динамический сайт рынка строительных материалов с возможностью обработки данных хранящихся в базе данных.
