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

СОДЕРЖАНИЕ: Оглавление Введение. 5 Необходимые знания по РНР. 7 Управляющие конструкции РНР. 7 Передача параметров в РНР-приложение. 10 Работа с MySQL сервером и функции MySQL. 11

Оглавление

Введение. 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

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

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

h3a 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

h3a 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 = 1tr

tdp class = header№ п . п /p/td

tdp class = header Фирма /p/td

tdp class = header Марка /p/td

tdp class = header Тип /p/td

tdp class = header Цена /p/td/tr;

while ($row=mysql_fetch_array($result))

{

echo tr

tdp.$i./p/td

tdp.$row[0]./p/td

tdp.$row[1]./p/td

tdp.$row[2]./p/td

tdp.$row[3]./p/td

tdpa href = add.php?part=startido=.$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%

trtd width = 20%p Ф . И . О ./p/td

tdinput type = text size = 50 maxlength = 50 name = fio/td/tr

trtdp Адрес /p/td

tdinput type = text size = 50 maxlength = 50 name = adres/td/tr

trtdpНомер телефона/p/td

tdinput type = text size = 25 maxlength = 50 name = tel/td/tr

trtdpКоличество/p/td

tdinput type = text size = 15 maxlength = 50 name = kol value = 1/td/tr

trtd/td

tdbrinput 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Введите свои персональные данные/h2br$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

htmlhead

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

link rel=stylesheet type=text/css href=style.css/headbody

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

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

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

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

h3a href=lookz.php?part=startСписок Ваших заказов/a/h3br

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

sozd . html

htmlhead

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

link rel=stylesheet type=text/css href=style.css/headbody

h1О создателе/h1br

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

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

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

add.php

htmlhead

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

link rel=stylesheet type=text/css href=style.css

/headbody

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%

trtd width = 20%pФ. И. О./p/td

tdinput type = text size = 50 maxlength = 50 name = fio/td/tr

trtdpАдрес/p/td

tdinput type = text size = 50 maxlength = 50 name = adres/td/tr

trtdpНомер телефона/p/td

tdinput type = text size = 25 maxlength = 50 name = tel/td/tr

trtdpКоличество/p/td

tdinput type = text size = 15 maxlength = 50 name = kol value = 1/td/tr

trtd/td

tdbrinput 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Заполните форму:/h2br.$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;}}?

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

/body/html

delete.php

htmlhead

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

link rel = stylesheet type = text/css href = style.css

/headbody

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;?

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

/body/html

lookf.php

htmlhead

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

link rel = stylesheet type = text/css href = style.css

/headbody

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 = 1tr

tdp class = header№ п.п/p/td

tdp class = headerФирма/p/td

tdp class = headerСтрана/p/td/tr;

while ($row=mysql_fetch_array($result))

{echo tr

tdp.$i./p/td

tdp.$row[0]./p/td

tdp.$row[1]./p/td

tdpa href = looko.php?part=firmidf=.$row[2].Товары/a/p/td/tr;

$i++;};

echo /table;?

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

/body/html

looko.php

htmlhead

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

link rel = stylesheet type = text/css href = style.css

/headbody

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 = 1tr

tdp class = header№ п.п/p/td

tdp class = headerФирма/p/td

tdp class = headerМарка/p/td

tdp class = headerТип/p/td

tdp class = headerЦена/p/td/tr;

while ($row=mysql_fetch_array($result))

{echo tr

tdp.$i./p/td

tdp.$row[0]./p/td

tdp.$row[1]./p/td

tdp.$row[2]./p/td

tdp.$row[3]./p/td

tdpa href = add.php?part=startido=.$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 = 1tr

tdp class = header№ п.п/p/td

tdp class = headerФирма/p/td

tdp class = headerМарка/p/td

tdp class = headerТип/p/td

tdp class = headerЦена/p/td/tr;

while ($row=mysql_fetch_array($result))

{echo tr

tdp.$i./p/td

tdp.$row[0]./p/td

tdp.$row[1]./p/td

tdp.$row[2]./p/td

tdp.$row[3]./p/td

tdpa href = add.php?part=startido=.$row[4].Заказать/a/p/td/tr;

$i++;};

echo /table;}?

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

/body/html

lookz.php

htmlhead

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

link rel = stylesheet type = text/css href = style.css

/headbody

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%

trtd width = 20%pФ. И. О./p/td

tdinput type = text size = 50 maxlength = 50 name = fio/td/tr

trtdpАдрес/p/td

tdinput type = text size = 50 maxlength = 50 name = adres/td/tr

trtdpНомер телефона/p/td

tdinput type = text size = 25 maxlength = 50 name = tel/td/tr

trtd/td

tdbrinput 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Заказанные товары/h2br;

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 = 1tr

tdp class = header№ п.п/p/td

tdp class = headerФирма/p/td

tdp class = headerМарка/p/td

tdp class = headerЦена/p/td

tdp class = headerКоличество/p/td/tr;

$s = 0;

while ($row=mysql_fetch_array($result))

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

echo trtdp.$i./p/td

tdp.$row[0]./p/td

tdp.$row[1]./p/td

tdp.$row[2]./p/td

tdp.$row[3]./p/td

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

$i++;

$s = $s + $sum;};

echo trtd colspan = 6pОбщая цена = .$s./p/td/tr/tablebr;}}?

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

/body/html

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

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

Скачать архив с текстом документа