РефератыИнформатикаРаРазработка Web-приложения Учёт оборудования с использованием PHP и СУБД MySQL

Разработка Web-приложения Учёт оборудования с использованием PHP и СУБД MySQL

Оглавление

Введение. 5


Необходимые знания по РНР. 7


Управляющие конструкции РНР. 7


Передача параметров в РНР-приложение. 10


Работа с MySQL сервером и функции MySQL. 11


Структурная схема ПО web-сервера. 12


Проектирование и создание базы данных. 13


Составление web-страниц, с которыми будет работать пользователь. 15


Написание РНР-кода, обрабатывающего БД.. 18


Заключение. 28


Список использованной литературы.. 29


Приложение 1. SQL запрос для построения базы данных. 30


Приложение 2. HTML-коды страниц сайта и таблица стилей. 33


Приложение 3. РНР-коды страниц сайта. 34


Приложение 4. Связи между таблицами. 40



Введение

В данном курсовом проекте передо мной поставлена задача создать Интернет-приложение «Учёт оборудования», используя СУБД MySQL и язык программирования для Интернет РНР, который будет служить пользовательским интерфейсом для работы с данной базой данных.


PHP – это серверный (или серверной стороны) язык сценариев, разработанный специально для Web. В HTML-страницу можно внедрить PHP-код, который будет выполняться при каждом её посещении. PHP-код интерпретируется Web-сервером и генерирует HTML-код или другой вывод, наблюдаемый посетителями страницы.


PHP – это продукт с открытым исходным кодом (Open Source), то есть вы имеете доступ к исходному коду. Его можно использовать, изменять и свободно распространять другим пользователям или организациям.


Первоначально PHP являлось сокращением от “
Personal
Home
Page

(“Персональная домашняя страница”
), но затем его название было изменено в соответствии с соглашением по рекурсивному именованию GNU (GNU=Gnu’s Not Unix) и теперь означает “
PHP
Hypertext
Preprocessor

(“Гипертекстовый препроцессор
PHP

).


В настоящее время основной версией PHP является четвёртая. Эта версия характеризуется несколькими существенными языковыми усовершенствованиями.


Язык РНР очень практичен, а так же он способен предоставлять программисту средства для быстрого и эффективного решения поставленных перед ним задач. Еще язык РНР работает на любом типе операционных систем, то есть он поддерживается системами типа Windows и Unix.


Существует также еще одна характеристика, которая делает РНР особенно привлекательным для программистов – это его бесплатное распространение! Наиболее новую версию можно в любой момент выгрузить из сайта по адресу http://www.php.net.


MySQL – очень быстрая, надёжная система управления базами данных
(СУБД). Вообще говоря, база данных позволяет эффективно хранить, искать, сортировать и получать данные. Сервер MySQL управляет доступом к данным, позволяя работать с ними одновременно нескольким пользователям, обеспечивает быстрый доступ к данным и гарантирует предоставление доступа только пользователям, имеющим на это право. Следовательно, MySQL является многопользовательским, многопоточным сервером. Он применяет SQL (Structured
Query
Landguage
– язык структурированных запросов
), используемый по всему миру стандартный язык запросов в базы данных.


Для создания базы данных MySQL я буду использовать такую прикладную программу, как phpMySQL_Admin, так как она имеет простой и понятный каждому интерфейс и позволяет создать базу данных MySQL практически не зная самого языка SQL.


Полученная курсовая работа по теме «
Разработка Web-приложения «Учёт оборудования» с использованием PHP и СУБД MySQL»
имеет в своем объеме 40 страниц печатного текста, 12 рисунков и 4 приложения.


При написании курсовой работы были использованы лекции преподавателя по данному предмету, соответствующая литература, а также опыт, полученный на практических занятиях.


Курсовая работа выполнена в соответствии с предложенной руководителем методической литературы.



Необходимые знания по РНР

Управляющие конструкции РНР

Управляющие конструкции обычно проверяют условия на истинность или ложность, и в зависимости от результата проверки выполняется то или иное действие. Различают следующие конструкции: проверка условий
и циклы
.


Проверка условий


Команда if представляет собой разновидность команды выбора, которая вычисляет значение выражения и в зависимости от того, будет ли полученный результат истинным или ложным, выполняет (или не выполняет) блок программного кода. Существует две общих формы команды if:


if (выражение) { блок }


и


if (выражение) { блок }


else { блок }


Если в результате проверки условия выполняется всего одна команда, фигурные скобки не обязательны.


elseif


Команда elseif добавляет в управляющую конструкцию if дополнительный уровень проверки и увеличивает количество условий, на основании которых принимается решение:


if (выражение) { блок }


elseif (выражение) { блок }


В РНР существует альтернативное представление команды elseif — в виде двух отдельных слов else if. Оба варианта приводят к одинаковым результатам, а альтернативное представление поддерживается исключительно для удобства. Команда elseif особенно полезна в тех случаях, когда происходит последовательное уточнение проверяемых условий. Обратите внимание: условие elseif вычисляется лишь в том случае, если все предшествующие условия if и elseif оказались ложными.


Необходимо отметить, что проверку условий можно вкладывать друг в друга, т.е. в одном блоке операторов условия проверять другое и т.д. Также можно проверять несколько условий одновременно, просто связывая условия операторами AND
(&&)
и OR
(||)
.


switch


Принцип работы конструкции switch отчасти напоминает if — результат, полученный при вычислении выражения, проверяется по списку потенциальных совпадений.


Это особенно удобно при проверке нескольких значений, поскольку применение switch делает программу более наглядной и компактной. Общий формат команды switch:


switch (выражение) {


case (условие): блок


case (условие): блок


...


default: блок


}


Проверяемое условие указывается в круглых скобках после ключевого слова switch. Результат его вычисления последовательно сравнивается с условиями в секциях case. При обнаружении совпадения выполняется блок соответствующей секции. Если совпадение не будет обнаружено, выполняется блок необязательной секции default.


Циклы


Циклы - это операторы управления, тело которых периодически выполняется определенное количество раз. Циклы бывают с предусловием, с постусловием и с изменяемым параметром.


Рассмотрим циклы с предусловием
. Это циклы, в которых условие выхода из них проверяется до выполнения самого тела цикла. Синтаксис данных циклов выглядит следующим образом:


while (условие) :


тело цикла


endwhile;


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


Циклы с постусловием
. Это циклы, условие выхода из которых проверяется после выполнения тела цикла. Ниже приведен синтаксис данного типа циклов:


do


{ тело цикла}


while (условие);


Теперь давайте рассмотрим циклы с изменяемым параметром
. Среди данных циклов выделяют две формы их написания: это for
и foreach
. Общая форма конструкции циклов for
и foreach
выглядит так:


for
:


for (
инициализация: условие; приращение) { блок }


foreach
:


Существует две разновидности команды foreach
, предназначенных для разных типов массивов:


foreach (массив as $элемент) { блок }


foreach (массив as $ключ => $элемент) { блок }


Первая разновидность применяется для численно-индексированных массивов, а вторая для ассоциативных массивов.



Передача параметров в РНР-приложение

Параметры могут передаваться в РНР-приложение из адресной строки и могут быть получены из формы, вызвавшей это приложение.


Рассмотрим пример иллюстрирующий передачу параметра по адресной строке. Пусть в строке адреса написано: http
://
localhost
/
programma
1.
php
?
name
=”Дмитрий”
, тогда для того чтобы получить доступ к параметру name
записанному в адресной строке необходимо написать следующий код к РНР-приложении:


$name = $HTTP_GET_VARS[‘name’];


Теперь если написать код echo
‘Имя = ‘.$
name
;
, браузер отобразит строку «Имя = Дмитрий»
.


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


Короткий стиль наиболее удобен в работе, для того, чтобы получить доступ к полю, нужно просто создать переменную с таким же именем, как и поле формы. Но этот стиль требует установление параметра register
_
globals
=
on
в ini файле php.


Средний стиль не требует дополнительных настроек, впрочем как и длинный. Но средний стиль работает только с версией РНР 4.0 и выше. Его синтаксис: $имя_переменной = $ _
POST
(
GET
) [‘имя_поля’];


Длинный стиль наиболее практичный, т.к. он работает на любой версии РНР: $имя_переменной = $
HTTP
_
POST
(
GET
)_
VARS
[‘имя_поля’];



Работа с
MySQL сервером и функции MySQL

Для корректной работы РНР и MySQL вначале требуется подключиться к серверу MySQL. Это выполняет функция, общий вид которой выглядит следующим образом:


resource
mysql
_
connect
([
string
server
[,
string
username
[,
string
password
[,
bool
new
_
link
]]]]);


Затем нужно выбрать базу данных, с которой будет работать приложение:


bool mysql_select_db (string database_name [, resource link_identifier]);


После выбора базы данных строим SQL-запрос и выполняем его при помощи функции: resource mysql_query
(string query [, resource link_identifier [, int result_mode]]).


Потом обрабатываем результаты запроса. Для этого я буду использовать 2 функции, одна из которых считает количество записей, возвращенных запросом, а вторая записывает возвращаемые данные в нумерованный массив:


int mysql_num_rows (resource result);


array mysql_fetch_array (resource result [, int result_type]);


Структурная схема ПО
web-сервера

Посетитель Интернет-сайта может просматривать только коды HTML страниц, он не видит работы РНР и MySQL. Работу с РНР-приложениями и базами данных MySQL осуществляет сервер, на котором установлен РНР-интерпритатор и СУБД MySQL. После выполнения какого-либо РНР-кода, сервер возвращает посетителю сайта HTML страницу, сам РНР-код посетитель просмотреть не может.


Для того чтобы работать с базами данных MySQL, нужен РНР-интерпритатор. Без него сервер не сможет работать с базами данных MySQL.


Ниже показана схема взаимодействия посетителя с базами данных и РНР-приложениями.



Рисунок 1. Взаимодействие посетителя сайта с РНР-приложениями и базами данных MySQL.


Проектирование и создание базы данных

В будущую базу данных, которая будет называться “ db
_06_
ob
” необходимо включить следующие данные об оборудовании и заказщиках.


Для того чтобы хранить выше перечисленные данные в базе данных необходимо создать следующие таблицы: “obor
” – для хранения данных об оборудовании: идентификатор оборудования, идентификатор фирмы производителя, идентификатор типа оборудования, марка и цена; “zak
” – для хранения данных о заказщиках: идентификатор заказщика, Ф.И.О., адрес, телефон и количество приобретаемого оборудования; “firma
” – для хранения данных о фирме производителе: идентификатор фирмы, идентификатор страны и название фирмы; “strana
” – для хранения данных о стране производителе: идентификатор страны и название страны; “tip
” – для хранения данных о типе оборудования: идентификатор типа оборудования и тип оборудования.


Для создания базы данных необходимо на главной странице программы phpMySQL_Admin в поле «создать новую БД» ввести имя базы данных и нажать кнопку «Создать». Рисунок 2 иллюстрирует эту операцию.



Рисунок 2. Создание новой БД.


В открывшемся окне вводим название новой таблицы:



Рисунок 3. Создание таблицы “
obor

.


Потом открывается окно, в котором создаем поля этой таблицы:



Рисунок 4. Создание полей таблицы “
obor

.


Создание остальных таблиц и полей в них не имеет смысла рассматривать, т.к. они создаются абсолютно аналогичным образом.


В Приложении 1 приведен SQL-запрос, при помощи которого можно проделать всю вышеописанную работу по созданию таблиц и полей в них, просто создав базу данных и выполнив в ней этот запрос.


Составление web-страниц, с которыми будет работать пользователь

Итак, мы имеем базу данных, с которой пользователь будет выполнять определенные действия посредством приложений РНР. Сначала создадим HTML страницы, с которых будут вызываться приложения РНР.


Главная страница
(Index

.

html

)


На этой странице будут помещены приветствие и четыре ссылки на определённом фоне. Именно с нее и будут вызываться приложения РНР. Здесь и далее будут использоваться фон и шрифты из файла style
.
css
.


<h1>Учёт оборудования</h1>


<br>


<h3>Добро пожаловать на наш сайт!!! На этом сайте Вы можете просмотреть списки имеющегося в наличии оборудования и заказать его. Доставка по Белгороду БЕСПЛАТНО!!!</h3>


<br>


<h3><a href='looko.php?part=look'>Оборудование</a></h3>


<h3><a href='lookf.php'>Фирмы производители</a></h3>


<h3><a href='lookz.php?part=start'>
Список
Ваших
заказов
</a></h3>


<br>


<h4>С предложениями по улучшению сайта и с различными вопросами обращайтесь к <a href='sozd.html'>создателю сайта</a>.</h4>


В результате получилась страничка, которая показана на рисунке 5.




Рисунок 5. Интерфейс главной страницы сайта.


Страница «О создателе» (
sozd
.
html
)


Создадим страницу «О создателе». Пусть она будет называться sozd
.
html
.
На ней разместим данные о создателе данного сайта и ссылку для перехода на главную страничку.


<h1>О создателе</h1>


<br>


<h3>Создателем данного сайта является студент второго курса группы 140606 факультета Компьютерных Наук и Телекоммуникаций Бредихин Александр Владимирович.</h3>


<br>


<h3><a href = "index.html">Вернуться на главную</a></h3>


В результате получится страничка, которая показана на рисунке 6.



Рисунок 6. Страничка О создателе.


Написание РНР-кода, обрабатывающего БД

Просмотр записей в БД


Рассмотрим алгоритм вывода записей из таблиц базы данных в окно браузера. Сначала необходимо подключиться к СУБД MySQL и выбрать базу данных, затем выполнить запрос, который выберет требуемые записи из базы данных, и, наконец, отобразить результаты этого запроса в браузере.


Процедура вывода в окно браузера записей реализована в файлах lookf
.
php
(
фирмы-изготовители), looko
.
php
(
список оборудования) и lookz
.
php
(заказы посетителей сайта).


Я рассмотрю отображение записей обо всех имеющихся в базе данных об оборудовании. Для того чтобы просмотреть весь список оборудований, посетителю сайта нужно просто щелкнуть по ссылке «Оборудование» и ему будет показан полный список записей об оборудовании, имеющегося в базе данных.


При этом загружается файл looko
.
php
, в который передается по строке адреса параметры part
=
look
.


Сначала подключаемся к СУБД MySQL и выбираем базу данных, с которой будем работать:


$connection = @mysql_connect("localhost", "root") or die("Could not connect to MySQL server!");


$bd_name = @mysql_select_db("db_06_
ob
") or die ("Ошибка открытия базы данных");


Затем запоминаем значение переменной part
, полученной по строке адреса. Эта переменная используется для выбора фрагмента кода, который необходимо выполнить.


После подключения к базе данных и запоминания значения переменной part
, проверяем значение этой переменной, а также строим и выполняем запрос, который возвращает требующиеся нам записи.


$sql = 'SELECT firma.firma, obor.marka, tip.tip, obor.price, obor.ido FROM obor, firma, tip WHERE firma.idf = obor.idf AND tip.idt = obor.idt LIMIT 0,100';


$result = mysql_query($sql);


Затем строим таблицу и, обрабатывая в цикле результаты выполнения запроса, заполняем ее.


$i=1;


echo '<table width = 100% border = 1><tr>


<td><p class = "header">№
п
.
п
</p></td>


<td><p class = "header">
Фирма
</p></td>


<td><p class = "header">
Марка
</p></td>


<td><p class = "header">
Тип
</p></td>


<td><p class = "header">
Цена
</p></td></tr>';


while ($row=mysql_fetch_array($result))


{


echo '<tr>


<td><p>'.$i.'</p></td>


<td><p>'.$row[0].'</p></td>


<td><p>'.$row[1].'</p></td>


<td><p>'.$row[2].'</p></td>


<td><p>'.$row[3].'</p></td>


<td><p><a href = "add.php?part=start&ido='.$row[4].'">
Заказать
</a></p></td></tr>';


$i++;


};


echo '</table>';


В результате работы в окне браузера появится таблица, в которую будут внесены все имеющиеся записи в базе данных:



Рисунок 7. Таблица всего имеющегося оборудования.


Добавление записи в БД


Если посетитель щелкнет по ссылке «Заказать» из таблицы оборудования, которая показана на рисунке 7, запустится РНР-приложение add
.
php
, в котором добавляется запись о новом заказе в базу данных. При этом передаются параметры part
=
start
и идентификатор записи оборудования.


$part = $_GET['part'];


$ido = $_GET['ido'];


Сначала создадим новую переменную, которой присвоим значение текстовое значение кода на HTML, генерирующего нужную нам форму для ввода пользователем своих данных:


$form = "<form action = 'add.php' method = get>


<table width = 100%>


<tr><td width = 20%><p>
Ф
.
И
.
О
.</p></td>


<td><input type = 'text' size = 50 maxlength = 50 name = 'fio'></td></tr>


<tr><td><p>
Адрес
</p></td>


<td><input type = 'text' size = 50 maxlength = 50 name = 'adres'></td></tr>


<tr><td><p>Номер телефона</p></td>


<td><input type = 'text' size = 25 maxlength = 50 name = 'tel'></td></tr>


<tr><td><p>Количество</p></td>


<td><input type = 'text' size = 15 maxlength = 50 name = 'kol' value = '1'></td></tr>


<tr><td></td>


<td><br><input type = 'submit' value = '
Заказать
'></td></tr>


<input type = hidden name = part value = 'go'>


<input type = hidden name = ido value = '$ido'>


</table>


</form>";




Рисунок 8. Форма для ввода данных посетителем.


Подключаемся к СУБД и выбираем базу данных:


$connection = @mysql_connect("localhost", "root") or die("
Ошибка
подключение
к
СУБД
MySQL!");


$bd_name = @mysql_select_db("db_06_
ob
") or die ("Ошибка открытия базы данных");


Затем выводим в окно браузера форму ввода данных


if ($part=="start")


{


echo "<h2>Введите свои персональные данные</h2><br>$form";


}


После того, как пользователь заполнит форму и нажмет кнопку «Заказать», снова загрузится файл add
.
php
, которому на этот раз переданы следующие параметры: part
=
go
,
идентификатор записи выбранного оборудования и данные, введенные пользователем.


В начале запоминаются переданные данные и проверяется заполнение формы, если форма заполнена не полностью – снова отображаем ее:


if ($part == "go")


{


$fio = $_GET['fio'];


$adres = $_GET['adres'];


$tel = $_GET['tel'];


$kol = $_GET['kol'];


$ido = $_GET['ido'];


if (($fio == "") or ($adres=="") or ($tel == ""))


{


echo '<h2>Вы не полностью заполнили форму</h2>'.$form;


}


Если пользователь заполнил все поля, то подключаемся к СУБД MySQL, выбираем базу данных и выполняем запрос, добавляющий запись в базу данных:


else


{


$sql = 'INSERT INTO `zak` ( `idz` , `ido` , `fio` , `adres` , `tel` , `kol` )


VALUES ('', ''.$ido.'', ''.$fio.'', ''.$adres.'', ''.$tel.'', ''.$kol.'');';


$result = mysql_query($sql);


echo '<h2>
Заказ
добавлен
</h2>';


echo '<h3>Мы благодарим Вас за то, что Вы выбрали нас.</h3>';


}


В результате добавления новой записи, в браузере будет отображено соответствующее сообщение:



Рисунок 9. Окно браузера в результате успешного добавления новой записи.


Удаление записей из БД


Если посетитель захочет просмотреть список своих заказов, то, после того как он, перейдя по ссылке «Список ваших заказов», введет свои данные в появившуюся форму, ему будет представлен список его заказов. Пример такого списка показан на рисунке 10.



Рисунок 10. Список заказов одного из клиентов.


В случае если пользователь решит удалить какой-либо свой заказ, ему просто потребуется щелкнуть по ссылке «Снять заказ» и эта запись будет удалена из базы данных.



Рисунок 11. Удаление записи


Рассмотрим более подробно процедуру удаления записи.


При переходе по ссылке загружается файл delete
.
php
, которому передается идентификатор выбранной записи и название таблицы, из которой необходимо произвести удаление. Затем выполняется запрос, который удаляет запись из таблицы с этим идентификатором, и в конце выводится сообщение о том, что запись удалена.


Подключаемся к MySQL и выбираем базу данных:


$
conn
= @
mysql
_
connect
("
localhost
","
root
")
or
die
("Ошибка соединения с
MySQL
");


$
db
= @
mysql
_
select
_
db
("
db_06_
ob
")
or
die
("Ошибка подключения к базе данных");


Запоминаем идентификатор записи, которую надо удалить, и название таблицы, из которой будет удалена запись.


$idz = $_GET['idz'];


$tab = $_GET['tab'];


Удаляем запись, идентификатор которой был передан по строке адреса:


$sql = 'DELETE FROM '.$tab.' WHERE idz = ''.$idz.'' LIMIT 1';


$result = mysql_query($sql);



Заключение

В процессе выполнения данного курсового проекта я улучшил свои навыки по работе с РНР и MySQL, также я улучшил навыки и умения по работе с методической и справочной литературой.


В результате проделанной работы, я изучил основы работы MySQL баз данных и языка программирования для Интернет PHP и научился с ними работать. Так же я разработал Интернет-приложение «Учёт оборудования», используя СУБД MySQL и язык программирования для Интернет РНР, который будет служить пользовательским интерфейсом для работы с данной базой данных.


В ходе разработки я также улучшил свои знания и умения по работе с HTML страницами. Также я научился передавать различные параметры РНР-приложению через адресную строку.


Еще я убедился в том, что РНР и MySQL на самом деле очень мощные среды программирования и хранения данных, и они очень быстро работают, и занимаю очень мало места на жестком диске.



Список использованной литературы

1. «Разработка Web-приложений с помощью PHP и MySQL». Л.Веллинг и Л.Томсон


2. Справочники по РНР и MySQL. http://www.php.su/books/


3. Файлы справок по phpMySQL_Admin


4. Сайт http://www.php.ru


5. Сайт http://www.mysql.ru



Приложение 1. SQL запрос для построения базы данных

-- phpMyAdmin SQL Dump


-- version 2.6.1


-- http://www.phpmyadmin.net


-- Хост: localhost


-- Время создания: Дек 21 2007 г., 22:16


-- Версия сервера: 4.1.8


-- Версия PHP: 4.3.10


--


-- БД: `db_06_ob`


--


-- --------------------------------------------------------


--


-- Структура таблицы `firma`


--


CREATE TABLE `firma` (


`idf` int(11) NOT NULL auto_increment,


`ids` int(11) NOT NULL default '0',


`firma` text NOT NULL,


PRIMARY KEY (`idf`)


) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=6 ;


--


-- Дамп данных таблицы `firma`


--


INSERT INTO `firma` VALUES (1, 1, 'Tumen');


INSERT INTO `firma` VALUES (2, 2, 'Samsung');


INSERT INTO `firma` VALUES (3, 3, 'Stinol');


INSERT INTO `firma` VALUES (4, 1, 'Podolsk');


INSERT INTO `firma` VALUES (5, 3, 'Grand');


-- --------------------------------------------------------


--


-- Структура таблицы `obor`


--


CREATE TABLE `obor` (


`ido` int(11) NOT NULL auto_increment,


`idf` int(11) NOT NULL default '0',


`idt` int(11) NOT NULL default '0',


`marka` text NOT NULL,


`price` int(11) NOT NULL default '0',


PRIMARY KEY (`ido`)


) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=11 ;


--


-- Дамп данных таблицы `obor`


--


INSERT INTO `obor` VALUES (1, 1, 1, 'mexan.torgovie 6 kg', 2000);


INSERT INTO `obor` VALUES (2, 2, 1, 'elektr.torgovie 10 kg', 3500);


INSERT INTO `obor` VALUES (3, 2, 1, 'elektr.porcionnie', 2500);


INSERT INTO `obor` VALUES (4, 1, 1, 'mexan.fasovochnie', 1500);


INSERT INTO `obor` VALUES (5, 3, 2, 'xolodilnaia RGW', 7000);


INSERT INTO `obor` VALUES (6, 3, 2, 'prilavok', 8000);


INSERT INTO `obor` VALUES (7, 4, 3, 'Merkurij', 3000);


INSERT INTO `obor` VALUES (8, 4, 3, 'Minika-100F', 5000);


INSERT INTO `obor` VALUES (9, 5, 3, 'EKR-2102K', 8000);


INSERT INTO `obor` VALUES (10, 5, 3, 'ER 250 RF', 6000);


-- --------------------------------------------------------


--


-- Структура таблицы `strana`


--


CREATE TABLE `strana` (


`ids` int(11) NOT NULL auto_increment,


`strana` text NOT NULL,


PRIMARY KEY (`ids`)


) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=4 ;


--


-- Дамп данных таблицы `strana`


--


INSERT INTO `strana` VALUES (1, 'Rossia');


INSERT INTO `strana` VALUES (2, 'China');


INSERT INTO `strana` VALUES (3, 'Germania');


-- --------------------------------------------------------


--


-- Структура таблицы `tip`


--


CREATE TABLE `tip` (


`idt` int(11) NOT NULL auto_increment,


`tip` text NOT NULL,


PRIMARY KEY (`idt`)


) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=4 ;


--


-- Дамп данных таблицы `tip`


--


INSERT INTO `tip` VALUES (1, 'vesi');


INSERT INTO `tip` VALUES (2, 'vetrina');


INSERT INTO `tip` VALUES (3, 'kassovij apparat');


-- --------------------------------------------------------


--


-- Структура таблицы `zak`


--


CREATE TABLE `zak` (


`idz` int(11) NOT NULL auto_increment,


`ido` int(11) NOT NULL default '0',


`fio` text NOT NULL,


`adres` text NOT NULL,


`tel` int(11) NOT NULL default '0',


`kol` int(11) NOT NULL default '0',


PRIMARY KEY (`idz`)


) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=5 ;


--


-- Дамп данных таблицы `zak`


--


INSERT INTO `zak` VALUES (1, 2, 'Ivanov Ivan Ivanovich', 'Gubkin Lenina 15 kv 17', 547854, 3);


INSERT INTO `zak` VALUES (2, 1, 'qwerty', 'qwerty', 123, 5);



Приложение 2. HTML-коды страниц сайта и таблица стилей


Каскадная таблица стилей «
style.
css»


body {background-image : url("image/fon.jpg")} H1 {text-align:center; font style:60pt; color:blue} H2 {text-align:center; font style:30pt; color:green} H3 {text-align:center; font style:20pt; color:red} H4 {text-align:center; font style:15pt} p {text-align:center; font-size:14pt; text-indent:15pt; font-family:Comic Sans MS; color:black} .header {text-align:center; font-size:14pt; font-weight:bold;}


Index.html


<html><head>


<title>Учёт оборудования</title>


<link rel="stylesheet" type="text/css" href="style.css"></head><body>


<h1>Учёт оборудования</h1><br>


<h3>Добро пожаловать на наш сайт!!! На этом сайте Вы можете просмотреть списки имеющегося в наличии оборудования и заказать его. Доставка по Белгороду БЕСПЛАТНО!!!</h3> <br>


<h3><a href='looko.php?part=look'>Оборудование</a></h3>


<h3><a href='lookf.php'>Фирмы производители</a></h3>


<h3><a href='lookz.php?part=start'>Список Ваших заказов</a></h3><br>


<h4>С предложениями по улучшению сайта и с различными вопросами обращайтесь к <a href='sozd.html'>создателю сайта</a>.</h4></body></html>


sozd
.
html


<html><head>


<title>Учёт оборудования</title>


<link rel="stylesheet" type="text/css" href="style.css"></head><body>


<h1>О создателе</h1><br>


<h3>Создателем данного сайта является студент второго курса группы 140606 факультета Компьютерных Наук и Телекоммуникаций Бредихин Александр Владимирович.</h3><br>


<h3><a href = "index.html">Вернуться на главную</a></h3></body></html>



Приложение 3. РНР-коды страниц сайта

add.php


<html><head>


<title>Учёт оборудования</title>


<link rel='stylesheet' type='text/css' href='style.css'>


</head><body>


<h1>Добавление нового заказа</h1>


<?php


$conn = @mysql_connect("localhost","root") or die ("Ошибка соединения с MySQL");


$db = @mysql_select_db("db_06_ob") or die ("Ошибка подключения к базе данных");


$part = $_GET['part'];


$ido = $_GET['ido'];


$form = "<form action = 'add.php' method = get>


<table width = 100%>


<tr><td width = 20%><p>Ф. И. О.</p></td>


<td><input type = 'text' size = 50 maxlength = 50 name = 'fio'></td></tr>


<tr><td><p>Адрес</p></td>


<td><input type = 'text' size = 50 maxlength = 50 name = 'adres'></td></tr>


<tr><td><p>Номер телефона</p></td>


<td><input type = 'text' size = 25 maxlength = 50 name = 'tel'></td></tr>


<tr><td><p>Количество</p></td>


<td><input type = 'text' size = 15 maxlength = 50 name = 'kol' value = '1'></td></tr>


<tr><td></td>


<td><br><input type = 'submit' value = 'Заказать'></td></tr>


<input type = hidden name = part value = 'go'>


<input type = hidden name = ido value = '$ido'>


</table></form>";


if ($part == "start")


{echo '<h2>Заполните форму:</h2><br>'.$form;}


if ($part == "go")


{$fio = $_GET['fio'];


$adres = $_GET['adres'];


$tel = $_GET['tel'];


$kol = $_GET['kol'];


$ido = $_GET['ido'];


if (($fio == "") or ($adres=="") or ($tel == ""))


{echo '<h2>Вы не полностью заполнили форму</h2>'.$form;}


else


{$sql = 'INSERT INTO `zak` ( `idz` , `ido` , `fio` , `adres` , `tel` , `kol` )


VALUES ('', ''.$ido.'', ''.$fio.'', ''.$adres.'', ''.$tel.'', ''.$kol.'');';


$result = mysql_query($sql);


echo '<h2>Заказ добавлен</h2>';


echo '<h3>Мы благодарим Вас за то, что Вы выбрали нас.</h3>';}}?>


<br><h3><a href = "index.html">Вернуться на главную</a></h3>


</body></html>


delete.php


<html><head>


<title>Учёт оборудования</title>


<link rel = 'stylesheet' type = 'text/css' href = 'style.css'>


</head><body>


<h1>Удаление заказа</h1>


<?php


$conn = @mysql_connect("localhost","root") or die ("Ошибка соединения с MySQL");


$db = @mysql_select_db("db_06_ob") or die ("Ошибка подключения к базе данных");


$idz = $_GET['idz'];


$tab = $_GET['tab'];


$sql = 'DELETE FROM '.$tab.' WHERE idz = ''.$idz.'' LIMIT 1';


$result = mysql_query($sql);


echo '<h2>Запись удалена</h2>';?>


<br><h3><a href = "index.html">Вернуться на главную</a></h3>


</body></html>


lookf.php


<html><head>


<title>Учёт оборудования</title>


<link rel = 'stylesheet' type = 'text/css' href = 'style.css'>


</head><body>


<h1>Фирмы производители</h1>


<?php


$conn = @mysql_connect("localhost","root") or die ("Ошибка соединения с MySQL");


$db = @mysql_select_db("db_06_ob") or die ("Ошибка подключения к базе данных");


$sql = 'SELECT firma.firma, strana.strana, firma.idf FROM firma, strana WHERE strana.ids = firma.ids LIMIT 0,100';


$result = mysql_query($sql);


$i = 1;


echo '<table width = 100% border = 1><tr>


<td><p class = "header">№ п.п</p></td>


<td><p class = "header">Фирма</p></td>


<td><p class = "header">Страна</p></td></tr>';


while ($row=mysql_fetch_array($result))


{echo '<tr>


<td><p>'.$i.'</p></td>


<td><p>'.$row[0].'</p></td>


<td><p>'.$row[1].'</p></td>


<td><p><a href = "looko.php?part=firm&idf='.$row[2].'">Товары</a></p></td></tr>';


$i++;};


echo '</table>';?>


<br><h3><a href = "index.html">Вернуться на главную</a></h3>


</body></html>


looko.php


<html><head>


<title>Учёт оборудования</title>


<link rel = "stylesheet" type = "text/css" href = "style.css">


</head><body>


<h1>Список оборудования</h1>


<?php


$conn = @mysql_connect("localhost","root") or die ("Ошибка соединения с MySQL");


$db = @mysql_select_db("db_06_ob") or die ("Ошибка подключения к базе данных");


$part = $_GET['part'];


if ($part=="look")


{$sql = 'SELECT firma.firma, obor.marka, tip.tip, obor.price, obor.ido FROM obor, firma, tip WHERE firma.idf = obor.idf AND tip.idt = obor.idt LIMIT 0,100';


$result = mysql_query($sql);


$i=1;


echo '<table width = 100% border = 1><tr>


<td><p class = "header">№ п.п</p></td>


<td><p class = "header">Фирма</p></td>


<td><p class = "header">Марка</p></td>


<td><p class = "header">Тип</p></td>


<td><p class = "header">Цена</p></td></tr>';


while ($row=mysql_fetch_array($result))


{echo '<tr>


<td><p>'.$i.'</p></td>


<td><p>'.$row[0].'</p></td>


<td><p>'.$row[1].'</p></td>


<td><p>'.$row[2].'</p></td>


<td><p>'.$row[3].'</p></td>


<td><p><a href = "add.php?part=start&ido='.$row[4].'">Заказать</a></p></td></tr>';


$i++;};


echo '</table>';}


if ($part=="firm")


{$idf = $_GET['idf'];


$sql = 'SELECT firma.firma, obor.marka, tip.tip, obor.price, obor.ido FROM obor, firma, tip WHERE firma.idf = obor.idf AND tip.idt = obor.idt AND obor.idf = '.$idf.' LIMIT 0,100';


$result = mysql_query($sql);


$i=1;


echo '<table width = 100% border = 1><tr>


<td><p class = "header">№ п.п</p></td>


<td><p class = "header">Фирма</p></td>


<td><p class = "header">Марка</p></td>


<td><p class = "header">Тип</p></td>


<td><p class = "header">Цена</p></td></tr>';


while ($row=mysql_fetch_array($result))


{echo '<tr>


<td><p>'.$i.'</p></td>


<td><p>'.$row[0].'</p></td>


<td><p>'.$row[1].'</p></td>


<td><p>'.$row[2].'</p></td>


<td><p>'.$row[3].'</p></td>


<td><p><a href = "add.php?part=start&ido='.$row[4].'">Заказать</a></p></td></tr>';


$i++;};


echo '</table>';}?>


<br><h3><a href = "index.html">Вернуться на главную</a></h3>


</body></html>


lookz.php


<html><head>


<title>Учёт оборудования</title>


<link rel = 'stylesheet' type = 'text/css' href = 'style.css'>


</head><body>


<h1>Просмотр заказов</h1>


<?php


$conn = @mysql_connect("localhost","root") or die ("Ошибка соединения с MySQL");


$db = @mysql_select_db("db_06_ob") or die ("Ошибка подключения к базе данных");


$part = $_GET['part'];


$form = "<form action = 'lookz.php' method = get>


<table width = 100%>


<tr><td width = 20%><p>Ф. И. О.</p></td>


<td><input type = 'text' size = 50 maxlength = 50 name = 'fio'></td></tr>


<tr><td><p>Адрес</p></td>


<td><input type = 'text' size = 50 maxlength = 50 name = 'adres'></td></tr>


<tr><td><p>Номер телефона</p></td>


<td><input type = 'text' size = 25 maxlength = 50 name = 'tel'></td></tr>


<tr><td></td>


<td><br><input type = 'submit' value = 'Показать'></td></tr>


<input type = hidden name = part value = 'go'>


</table>


</form>";


if ($part == "start")


{echo '<h2>Введите свои данные</h2>'.$form;}


if ($part == "go")


{$fio = $_GET['fio'];


$adres = $_GET['adres'];


$tel = $_GET['tel'];


if (($fio == "") or ($adres=="") or ($tel == ""))


{echo '<h2>Вы не полностью заполнили форму</h2>'.$form;}


else


{echo '<h2>Заказанные товары</h2><br>';


echo '<h3>Мы благодарим Вас за то, что Вы выбрали нас. Если Вы решили отказаться от заказа нажмите "Снять заказ"</h3>';


$sql = 'SELECT firma.firma, obor.marka, obor.price, zak.kol, zak.idz, obor.ido FROM zak, obor, firma WHERE firma.idf = obor.idf AND obor.ido = zak.ido AND zak.fio = ''.$fio.'' AND zak.adres = ''.$adres.'' AND zak.tel = ''.$tel.'' LIMIT 0,100';


$result = mysql_query($sql);


$i = 1;


echo '<table width = 100% border = 1><tr>


<td><p class = "header">№ п.п</p></td>


<td><p class = "header">Фирма</p></td>


<td><p class = "header">Марка</p></td>


<td><p class = "header">Цена</p></td>


<td><p class = "header">Количество</p></td></tr>';


$s = 0;


while ($row=mysql_fetch_array($result))


{$sum = $row[2]*$row[3];


echo '<tr><td><p>'.$i.'</p></td>


<td><p>'.$row[0].'</p></td>


<td><p>'.$row[1].'</p></td>


<td><p>'.$row[2].'</p></td>


<td><p>'.$row[3].'</p></td>


<td><p><a href = "delete.php?idz='.$row[4].'&tab=zak">Снять заказ</a></p></td></tr>';


$i++;


$s = $s + $sum;};


echo '<tr><td colspan = 6><p>Общая цена = '.$s.'</p></td></tr></table><br>';}}?>


<br><h3><a href = "index.html">Вернуться на главную</a></h3>


</body></html>


Приложение 4. Связи между таблицами


Рисунок 12. Связи между таблицами.

Сохранить в соц. сетях:
Обсуждение:
comments powered by Disqus

Название реферата: Разработка Web-приложения Учёт оборудования с использованием PHP и СУБД MySQL

Слов:4792
Символов:49213
Размер:96.12 Кб.