Розробка інтернет магазину компьютерної техніки

Автор: Пользователь скрыл имя, 15 Марта 2012 в 13:42, курсовая работа

Краткое описание

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

Оглавление

ВВЕДЕНИЕ………………………………………………………………………6З
1. Анализ информационной системы сайтов…………………………………7
1.1 Классификация сайтов………………………………………………………7
1.2 Типы структур сайтов……………………………………………………….10
1.3 Подструктуры сайтов………………………………………………………..13
2. Постановка задачи………………………………………………………….. 17
3. Программная реализация…………………………………………………….18
3.1 Описание базы данных………………………………………………………18
3.1.1 Структура таблиц…………………………………………………………18
3.1.2 Описание таблиц………………………………………………………….20
3.1.3 Схема базы данных……………………………………………………….23
3.2 Назначение скриптов php……………………………………………………24
3.3 Описание интерфейсов……………………………………………………...31
3.3.1 Интерфейс сайта…………………………………………………………..31
3.3.2 Интерфейс менеджера……………………………………………………34
3.3.3 Интерфейс администратора………………………………………………37
4. Тесты для проверки работоспособности системы…..……………………..40
4.1 Тестирование системы покупателя…………………………………………40
4.2 Тестирование системы менеджера………………………………………….41
4.3 Тестирование системы администратора……………………………………42
ЗАКЛЮЧЕНИЕ…………………………………………….…………………….43
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ……………………………..44
ПРИЛОЖЕНИЕ А Текст программы..................................................................45
ПРИЛОЖЕНИЕ Б Схема сайта...........................................................................50
ПРИЛОЖЕНИЕ В Алгоритм работы сайта.......................................................51

Файлы: 1 файл

Курсовой готовый.pdf

— 1.79 Мб (Скачать)
Page 1
МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ
ХЕРСОНСЬКИЙ НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ
КАФЕДРА ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ
Розробка інтернет магазину компьютерної техніки
Курсова робота
з дисципліни „ WEB- програмування ”
Пояснювальна записка
Виконав
студент групи 5ПР1
_________________________
О.В. Бондаренко
( підпис, дата)
Керівник
д. т. н., професор
___________________________
В.О. Доровський
( підпис, дата)
Нормоконтролер
д. т. н., професор
___________________________
В.О. Доровський
( підпис, дата)
Херсон 2011

Page 2

4
АННОТАЦИЯ
Целью выполнения курсовой работы является расширение и углубление
знаний и навыков в создании сайтов, управлении базами данных, освоение
механизмов взаимодействия динамических страниц с база данных.
В процессе выполнения курсовой работы необходимо:
1. разобраться с механизмом создания сайтов;
2. разобраться с механизмом создания базы данных;
3. всесторонне оценить поставленную задачу и определить оптимальные
пути ее решения;
4. продумать структуру сайта и интерфейс общения с пользователем.
Оббьем пояснительная записка -51 ст., количество источников –15.
Темы курсовых работ предлагаются кафедрой в соответствии с типовыми
программами дисциплин по данной специальности.

Page 3

5
СОДЕРЖАНИЕ
ВВЕДЕНИЕ………………………………………………………………………6З
1. Анализ информационной системы сайтов…………………………………7
1.1 Классификация сайтов………………………………………………………7
1.2 Типы структур сайтов……………………………………………………….10
1.3 Подструктуры сайтов………………………………………………………..13
2. Постановка задачи………………………………………………………….. 17
3. Программная реализация…………………………………………………….18
3.1 Описание базы данных………………………………………………………18
3.1.1 Структура таблиц…………………………………………………………18
3.1.2 Описание таблиц………………………………………………………….20
3.1.3 Схема базы данных……………………………………………………….23
3.2 Назначение скриптов php……………………………………………………24
3.3 Описание интерфейсов……………………………………………………...31
3.3.1 Интерфейс сайта…………………………………………………………..31
3.3.2 Интерфейс менеджера……………………………………………………34
3.3.3 Интерфейс администратора………………………………………………37
4. Тесты для проверки работоспособности системы…..……………………..40
4.1 Тестирование системы покупателя…………………………………………40
4.2 Тестирование системы менеджера………………………………………….41
4.3 Тестирование системы администратора……………………………………42
ЗАКЛЮЧЕНИЕ…………………………………………….…………………….43
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ……………………………..44
ПРИЛОЖЕНИЕ А Текст программы..................................................................45
ПРИЛОЖЕНИЕ Б Схема сайта...........................................................................50
ПРИЛОЖЕНИЕ В Алгоритм работы сайта.......................................................51

Page 4

6
ВВЕДЕНИЕ
В настоящее время Интернет представляет собой один из самых активно
развивающихся средств информации. По статистике, значительное число
пользователей имеют доходы выше среднего и относятся к группе менеджеров
среднего и высшего звена.
Создание сайта в Интернете обеспечивает новые возможности по
расширению, информационной поддержке или рекламе бизнеса, а также для
продажи того или иного продукта.
Профессионально созданный сайт обеспечивает легкость его нахождения
по запросам в поисковых системах, поскольку целевую аудиторию составляют
пользователи, которые ищут конкретную информацию, товар в Интернете
Веб-сайт сегодня является не только информационным средством или
визиткой, а полноценным маркетинговым инструментом, привлекающим новых
клиентов, приносящим прибыль.
Существует огромное количество магазинов, продающий товар через
интернет. Намного легче зайти на сайт и найти всё необходимое, нежели ездить
и искать нужный вам товар по всем магазинам города.
Качественный сайт является основным информационным ресурсом всей
компании. При помощи сайта можно: передать всю необходимую информацию
о товарах и услугах компании, в том числе самые последние новинки, наладить
прямой контакт с клиентом, начиная от продаж в интернет-магазине и
заканчивая сервисной информационной поддержкой (например, в форуме),
красиво разрекламировать свою фирму, товары, услуги, так, чтобы иметь
одновременно зрелищность телевизионной рекламы и информативность
буклета.

Page 5

7
1 АНАЛИЗ ИНФОРМАЦИОННОЙ СИСТЕМЫ САЙТОВ
1.1 Классификация сайтов
Конечно, официальной классификации корпоративных интернет-сайтов
не существует. Тем не менее, большинство дизайн студий группирует проекты
похожим образом. Вот наиболее распространенная классификация:
1. визитка;
2. витрина;
3. интернет-магазин;
4. корпоративное представительство;
5. промо-сайт;
6. информационный проект;
7. портал.
Фактически, сайт-визитка — это просто рекламный буклет компании в
Интернете. На нем обычно размещается общая информация о фирме (область
деятельности, простой список продаваемых товаров или оказываемых услуг,
успехи, награды и подобная информация), адрес и план проезда. Чаще всего
сайты-визитки создают из-за их малой стоимости и отсутствии затрат на
поддержку (информация практически не меняется). Правда, в некоторых
случаях эти проекты являются хорошим выбором. Например, для компаний,
оказывающих индивидуальные услуги, цены на которые заранее не известны.
На сайтах-витринах к данным о фирме добавляется каталог продаваемых
товаров или оказываемых услуг. Причем речь идет не о простом списке. О
каждом товаре предоставляется подробная информация, технические данные и
фотографии. То же самое относится и к оказываемым услугам. Кроме каталога
товаров,
на
сайтах-витринах
обычно существуют
дополнительные
возможности, помогающие пользователям определиться. Например, подбор
определенного товара по заданному набору характеристик, сравнение
различных товаров... Чаще всего витрины создаются компаниями, торгующими

Page 6

8
бытовой техникой, компьютерами, сотовыми телефонами, автомобилями и им
подобными товарами.
Интернет-магазин, в принципе, это то же, что и витрина, но с
интегрированной системой обработки заказов. На первый взгляд кажется, что в
большинстве случаев интернет-магазин — это лучший выбор для
корпоративного сайта. Но... Но до сих пор нельзя назвать электронную
торговлю такой уж выгодной. По крайней мере, в подавляющем большинстве
случаев точка продаж в офлайне приносит гораздо больше прибыли. Конечно,
интернет-магазин можно использовать как дополнительную торговую
площадку и надеяться, что в будущем ситуация изменится. Пока же ожидать
большой выгоды от продаж товаров через Интернет, к сожалению, не
приходится.
Но зато электронный магазин является
достаточно
привлекательным с точки зрения маркетинга. Уже давно известно, что многие
люди, хотя ничего и не покупают в Сети, в офлайне идут в те же салоны,
виртуальные представительства которых посещали ранее.
Корпоративное представительство — это сайт, объединяющий в себе
визитку и витрину или интернет-магазин. Кроме этого, подобные проекты
обладают дополнительными возможностями для сотрудников компании. Это
может быть, например, база данных по наличию товара в различных филиалах,
система класса CRM
*
для работы с партнерами, персонифицированная
маркетинговая и техническая информация. Фактически, корпоративное
представительство — это не просто сайт, а рабочий инструмент для
сотрудников компании. Наиболее полезны подобные проекты для крупных
компаний, особенно имеющих филиалы или разветвленную дилерскую сеть в
регионах.
Главной задачей промо-сайта является продвижение на рынке товаров
определенной марки. В этом случае информация о компании отодвигается на
«задний план». Общие черты промо-сайтов: яркие, очень динамичные с
дизайном, подчиняющимся дизайну рекламируемой торговой марки, наличие
флеш-роликов, онлайн-игр и различных конкурсов. В общем, на них есть все,

Page 7

9
чтобы привлечь людей на сайт, причем практически не важно, для чего. Пусть
посетители просто играют в морской бой. Главное — в их головы западет
продвигаемая торговая марка, чтобы потом, перед прилавком магазина,
«всплыть» в сознании. Кроме того, очень часто промо-сайты создаются
специально для проведения оффлайновых рекламных компаний в качестве
основного источника информации по конкурсам, розыгрышам призов.
Как это ни странно, но некоторые компании имеют два сайта: визитку и
информационный, причем упор делается именно на последний. На первый
взгляд, не совсем понятно, зачем это нужно. Но на самом деле,
информационный проект — один из самых эффективных (правда, и один из
самых дорогих) маркетинговых инструментов. Итак, компании нужно создать
сайт, на котором посетителям предоставляются всевозможные данные и
аналитические материалы в области деятельности фирмы. Причем проект
должен постоянно дополняться и обновляться. Самое главное — грамотные и
не содержащие никакой рекламы статьи. Такой проект привлечет множество
заинтересованных людей, а размещение на веб-страницах ссылок на
корпоративный сайт будет очень эффективно. И это не говоря уже о том, что
компания, создавшая и поддерживающая информационный сайт, получает
огромный плюс к своему имиджу и увеличение «узнаваемости» у покупателей.
Портал — это самый неоднозначный тип сайта. Некоторые считают
порталами только крупнейшие веб-проекты, другие называют этим словом
набор из десятка страничек. В нашем же случае под порталом будет пониматься
сайт, который содержит все, что можно: информацию о фирме, развернутый
каталог товаров и услуг, интернет-магазин, интегрированные системы CRM и
B2B, библиотеку различной информации и аналитических материалов из
области деятельности фирмы. В общем, все, все, все... Порталы можно
встретить только у самых крупных международных компаний-лидеров, в
других же случаях затраты на создание такого проекта окажутся несоизмеримо
больше потенциальной отдачи.

Page 8

10
1.2 Типы структур сайтов
Структура сайта должна определяться еще на первых этапах создания
проекта до начала разработки дизайна
И в будущем, по мере роста сайта, веб-мастера должны строго ее
придерживаться. В этом случае можно быть уверенным, что веб-проект будет
больше походить на ухоженный парк с проложенными повсюду тропинками, а
не на лесную чащу, в которой посетители вынуждены будут пробираться к цели
по настоящему бурелому. Однако для этого необходимо разобраться, какие
вообще структуры сайта существуют и для каких проектов они больше всего
подходят.
Вот наиболее распространенные типы структур сайтов:
1. линейная структура;
2. линейная структура с альтернативами и вариантами;
3. линейная структура с ответвлениями;
4. древовидная структура;
5. решетчатая структура.
Линейная структура самая простая структура сайта. Веб-страницы идут
одна за другой, и пользователь должен просматривать их как слайд-шоу.
В линейной структуре не существует разделения контента на уровни. Все
страницы на таких сайтах равноправны, и их должен увидеть каждый
посетитель. Несмотря на простоту реализации линейной структуры,
недостатков у нее гораздо больше, нежели достоинств. А поэтому область ее
применения четко ограничена. Она может использоваться на имиджевых
сайтах-презентациях и в онлайновых учебных пособиях.
Реализация линейной структуры не представляет собой абсолютно
никакой сложности. Самый простой вариант сайта — набор HTML-страниц, с
каждой из которых есть ссылка на последующую предыдущую (естественно,
исключение составляют крайние страницы). Но и здесь многие веб-мастера
умудряются допускать ошибки. Дело в том, что на каждой страницы
обязательно должно быть какое-то заглавие и ссылка на первую страницу.

Page 9

11
Иначе посетители, попавшие в середину сайта, например, с поисковой системы,
ничего не поймут и почти наверняка покинут проект разочарованными. Кроме
того, очень полезно бывает показывать общее число страниц и как-то выделять
номер той из них, на которой человек находится в данный момент. Иначе
просмотр проекта превратится для посетителей в путешествие в неизвестность.
На сайтах, построенных по принципу линейная структуры с
альтернативами и вариантами, посетители могут проявить некоторую
инициативу.
Основой данной структуры является простое линейное размещение веб-
страниц. Однако на сайтах, построенных по этому принципу, посетители могут
проявить некоторую инициативу, облегчив для себя поиск нужной
информации. Под альтернативами в данном случае понимается выбор между
двумя ветками. Чаще всего подобная структура используется для сбора
информации о посетителе. Примером здесь может служить процесс
регистрации клиента на сайте какой-то фирмы, оказывающей определенные
услуги. В этом случае все люди начинают работу со стартовой страницы.
Однако потом частным лицам предлагается ввести одну информацию, а
представителям коммерческих структур — другую. После этого и те, и другие
попадают на одну и ту же страницу.
Линейная структура с альтернативами и вариантами удобна в том плане,
что с одной стороны она позволяет веб-мастерам контролировать деятельность
посетителей, направив их в определенное русло. Но с другой стороны и у
последних есть возможность проявить некоторую инициативу, которая
позволит им, во-первых, почувствовать свободу, а во-вторых, облегчить доступ
к нужной именно им информации.
Линейная структура с ответвлениями - контролируемая структура,
которая напоминает дорогу с ответвляющимися от нее время от времени
тупиковыми тропинками
Это тоже контролируемая структура, которая напоминает дорогу с
ответвляющимися от нее время от времени тупиковыми тропинками. То есть

Page 10

12
посетитель последовательно переходит с одной страницы на другую. Если
информация, размещенная на какой-то из них его заинтересовала, и он хочет
узнать подробности, то может перейти на ответвление, а потом вернуться
обратно на основную «дорожку».
Главным преимуществом рассматриваемой структуры является то, что к
ней легко перейти с обычного линейного размещения веб-страниц. Такое часто
бывает, когда созданный однажды веб-сайт перестает удовлетворять
возросшим требованиям, а глобальная переделка по тем или иным причинам
невозможна. В этом случае веб-мастер может быстро и без всяких проблем
расширить проект. И при этом сайт не превратится в «лесную чащу», а
останется «ухоженным парком», по которому посетителям будет приятно
гулять.
Древовидная структура — самый универсальный способ размещения веб-
страниц. Она подходит для создания практически любых типов сайтов
Ее принцип, наверное, понятен всем. Пользователь при заходе на
заглавную страницу оказывается перед выбором, куда идти дальше. После
перехода в нужный раздел, он подбирает необходимый подраздел и т. п. У
древовидной структуры очень много достоинств, мы даже не будем
перечислять их все. Но у неё есть главный недостаток.
Речь идет о том, что в древовидной структуре очень сложно соблюдать
баланс между глубиной и шириной. Если «дерево» вашего сайта будет расти
только вглубь, то пользователям, чтобы дойти до какой-то информации,
придется загрузить и просмотреть слишком много страниц. Естественно, это
будет раздражать. Ну а если вы создадите очень широкую древовидную
структуру, то посетители будут вынуждены каждый раз тратить очень много
времени для выбора нужной им ветки. А это, естественно, тоже плохо. Таким
образом, если вы решитесь использовать древовидную структуру сайта, то вам
будет нужно постоянно следить за ее разрастанием и придерживаться золотой
середины.

Page 11

13
В решетчатой структуре все страницы также размещаются в различных
ветках. Но у пользователя есть возможность перемещаться по ним не только
вертикально (вверх-вниз) но и горизонтально (то есть между ветками на разных
уровнях). Используется решетка в основном только в каталогах. При этом
перемещение между ветками на глубинных уровнях осуществляется с
помощью отсылок на рубрики в других разделах.
Использование
решетчатой
структуры
в
других
проектах
нецелесообразно. Во-первых, она относительно сложна в реализации. Во-
вторых, обращаться с «решеткой» нужно с очень большой осторожностью.
Иначе она может очень быстро превратиться в непроходимую «чащу», в
которой посетители будут вынуждены долго блуждать в поисках нужной им
информации.
1.3 Подструктуры сайтов
В каждом конкретном случае структура сайта, название и взаимное
расположение отдельных страниц может отличаться в зависимости от задач,
решаемых сайтом, сложности, его объёма и содержания.
Сайт из 10 страниц
Рисунок 1.1 - Сайт из 10 страниц
В сайте может быть до 20 страниц текста формата А-4 и до 50
фотографий (рисунков), выполненных с предпросмотром.
Сайт из 20 страниц

Page 12

14
Рисунок 1.2 - Сайт из 20 страниц
В сайте может быть до 40 страниц текста формата А-4 и до 90
фотографий (рисунков), выполненных с предпросмотром.
Сайт из 30 страниц (корпоративный сайт начального уровня)
Рисунок 1.3 - Сайт из 30 страниц
В сайте может быть до 60 страниц текста формата А-4 и до 120
фотографий (рисунков), выполненных с предпросмотром.
Сайт из 60 страниц (корпоративный сайт среднего уровня)
В сайте может быть до 150 страниц текста формата А-4 и до 180
фотографий (рисунков), выполненных с предпросмотром.
Сайт из 150 страниц (корпоративный сайт высокого уровня)
В сайте может быть до 250 страниц текста формата А-4 и до 300
фотографий (рисунков), выполненных с предпросмотром.

Page 13

15
Глубина сайта - количество последовательных уровней, содержащих веб-
страницы, начиная с домашней (главной страницы).
Главную (домашнюю) страницу сайта, как правило, не считают за
уровень. Второй и последующие уровни имеют нумерацию на единицу меньше.
Сайт с двухуровневой системой навигации (оптимален):
0. Главная (домашняя) страница сайта. С неё ведут гиперссылки (система
навигации сайта) на первый уровень.
1. Первый уровень. С каждой веб-страницы первого уровня гиперссылки
ведут на веб-страницы второго уровня.
2. Второй уровень
Сайт с трёхуровневой системой навигации (применяется для сложных
сайтов с большим количеством информации):
0. Главная (домашняя) страница сайта. С неё ведут гиперссылки (система
навигации сайта) на первый уровень.
1. Первый уровень. С каждой веб-страницы первого уровня гиперссылки
ведут на веб-страницы второго уровня.
2. Второй уровень. С каждой веб-страницы второго уровня гиперссылки
ведут на веб-страницы третьего уровня.
3. Третий уровень.
Рисунок 1.4 - Сайт с трёхуровневой системой навигации

Page 14

16
Сайт с четырёхуровневой системой навигации (большая глубина сайта
бывает в особо сложных сайтах, и при ошибке веб-дизайнера или заказчика,
пожелавших иметь подобную структуру сайта)
0. Главная (домашняя) страница сайта. С неё ведут гиперссылки (система
навигации сайта) на первый уровень.
1. Первый уровень
2. Второй уровень
3. Третий уровень. С каждой веб-страницы третьего уровня гиперссылки
ведут на веб-страницы четвёртого уровня.
4. Четвёртый уровень
Рисунок 1.5 - Сайт с четырёхуровневой системой навигации
Сайт, имеющий большую глубину (система навигации сайта включает
много уровней), очень труден для поиска в нём информации.
Глубину сайта можно уменьшить, а, следовательно, упростить сайт и
поиск информации на нём, если веб-дизайнеру предоставят контент сайта
сразу, а не частями.
Чтобы создать простой и удобный сайт, веб-дизайнеру необходимо иметь
полное представление обо всем контенте сайта (текст, таблицы и рисунки).

Page 15

17
2. ПОСТАНОВКА ЗАДАЧИ
Прежде чем приступить к созданию сайта интернет-магазина, рассмотрим
подробнее основные задачи, которые он должен будет осуществлять. Начнем с
того, для какого круга лиц предназначен сайт, и что им необходимо знать для
осуществления покупки.
Интернет-магазин - «Компьютеры и оргтехника» осуществляет продажу
системных блоков, мониторов, комплектующих, принтеры, сканеры и т.д.
Основным покупателем является лицо, непосредственно связанное с
компьютером.
Основными задачами сайта являются:
1. авторизованный вход для администраторов сайта и менеджеров;
2. список товаров для продажи выводимый с помощью PHP;
3. список каталогов, через которые осуществляется вход в таблицу с
товарами;
4. система должна позволять помещать товар, с указанным количеством,
в корзину;
5. система должна позволять выбрать варианты оплаты и доставки, с
изменением суммы;
6. для администратора должна быть возможность редактирования
товаров и каталогов, а также пользователей, включается также
возможность редактирования информации о фирме и контакты,
добавление новостей и редактирование голосования;
7. для менеджеров осуществлена возможность просматривания заказов и
установления им статуса.
Для реализации данного сайта решено было воспользоваться 4-уровненовой
системой навигации. Схема сайта представлена в Приложении Б
.

Page 16

18
3. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ
3.1 Описание базы данных
База данных comp является основным элементом интернет-магазина
«Компьютеров и оргтехники». Эта база данных позволяет хранить данные,
которые являются основным источником для отображения информации, а
именно: каталоги и содержащиеся в нем товары, пользователи, заказы и
операции с ними, информацию о заказчиках и новости.
Управление базой данных занимается администраторы, которые являются
основными пользователями, добавляющим в базу данных информацию. Все
они зарегистрированы в базе данных под именами. Менеджеры объединены в
группу. Другая группа пользователей называется не зарегестирована в таблице
user, она тесно связана с заказами и регистрируются данный тип пользователей
во время отправки заказа.
3.1 Структура таблиц
Моя база данных содержит семь таблиц, шесть из которых созданы в
PhpMyAdmin, одна создается в php скрипте при запуске сайта.
Рассмотрим их структуру:
razd – каталоги компьюторов
Поле
Тип
Функционал
Описание
Id
int(11)
Уникальный код новости
auto_increment
Nazv
varchar(50)
Текстовое название каталога
Por
int(11)
Порядковый номер каталога
razd2– каталоги оргтехники
Поле
Тип
Функционал
Описание
Id
int(11)
Уникальный код новости
auto_increment
Nazv
varchar(50)
Текстовое название каталога
Por
int(11)
Порядковый номер каталога

Page 17

19
tovar – товары
Поле
Тип
Функционал
Описание
Id
int(11)
Уникальный код новости
auto_increment
Vid
int(11)
Вид каталога
Nazv
varchar(50)
Текстовое название товара
Foto
varchar(50)
Путь к рисунку товара
opisanie
text
Текстовое описание товара
Zena
float
Цена товара
tovar_zakaz – заказанные товары
Поле
Тип
Функционал
Описание
Id
int(11)
Уникальный код новости
auto_increment
id_zakaz
int(11)
Код заказа (заказчика)
id_tovar
int(11)
Код товара
Kol
int(11)
Количество товара
summa
float
Сумма заказанного товара
user – пользователи
Поле
Тип
Функционал
Описание
Id
int(11)
Уникальный код новости
auto_increment
Tip
int(11)
Номер типа пользователя
1-менеджер,
2-админ
Login
varchar(50)
Логин пользователя
Fio
varchar(50)
Фамилия,
Имя,
Отчество
пользователя
email
varchar(50)
Электронная
почта
пользователя
Pass
varchar(50)
Пароль пользователя
zak – временная таблица заказанных товаров

Page 18

20
Поле
Тип
Функционал
Описание
Id
int(11)
Уникальный код новости
auto_increment
id_tovar
int(11)
Код товара
Nazv
varchar(20)
Название заказанного товара
Firma
varchar(10)
Фирма заказанного товара
Foto
varchar(50)
Путь к фотографии
opisanie
text
Описание заказанного товара
Zena
float
Цена заказанного товара
Kol
int(11)
Количество
заказанного
товара
zakaz – заказ и заказчик
Поле
Тип
Функционал
Описание
Id
int(11)
Уникальный код новости
auto_increment
FIO
varchar(50)
Фамилия,
Имя,
Отчество
заказчика
Tel
varchar(15)
Телефон заказчика
email
varchar(15)
Электронная почта заказчика
Data
date
Дата заказа
status
varchar(15)
Статус заказа
id_men
int(11)
Код менеджера,
исполняющего заказ
3.1.2 Описание таблиц
Опишем каждую таблицу по отдельности для полного представления базы
данных comp
Первая таблица «razd» хранит информацию о каталогах компьютеров, где
порядок по которому происходит сортировка при отображении осуществляется
по столбцу «por».

Page 19

21
Следующая «razd2» аналогична первой, только это каталог оргтехники.
Третья таблица Товаров хранит информацию о товарах, где значение «vid»
является показателем принадлежности товара к какому то каталогу, если 1 – к
компьютерам, 2 – оргтехнике.
Далее следует таблица «tovar_zakaz» она представляет собой таблицу
заказов, объединяющей между собой заказчика и товары которые он заказал. В
ней указывается количество указанного товара и ее сумма.
Пятая таблица пользователей необходима для контроля входа
пользователей в панель администрирования и в менеджерскую. Также в случае
когда «tip» равен 1,то есть пользователь является менеджером, его данные
используются для связи с заказчиком, что позволяет контролировать
выполнение заказа более автономно.
Шестая таблица является временной, то есть она создается в самом сайте
при создании сессии, то есть при входе на сайт в первый раз. Это позволяет
создавать временную корзину на случай если пользователь решит не
заказывать, данные с корзины будут удалены. В обратном случае – данные
будут переписаны в таблицу с заказами, и также таблица будет уничтожена.
Последняя таблица «zakaz» представляет собой набор заказчика, «id»
данной таблицы является номером заказа и последующем номером счета. Здесь
также указана дата заказа, которая задается автоматически в php, значение
которого равно текущему числу, что очень удобно при контролировании заказа.
Поле «status» указывает статус заказа: выполнен (после того как товар отгружен
покупателю и все требования выполнены), выполняется (после того как
менеджер резервирует данный заказ и начинает работать над его
осуществлением), отменен (временное помещение заказа в хранилище, по
каким либо причинам), прибыл (когда заказчик осуществил заказ, но его еще не
обработали).
Данная таблица связывается с таблицей менеджеров (пользовательская
таблица) по уникальному коду менеджера.

Page 20

22
3.1.3 Схема базы данных
Рисунок 3.1 – Структурная схема базы данных «comp»
id
nazv
por
id
vid
nazv
firma
foto
opisanie
zena
id
nazv
por
id
id_zakaz
id_tovar
kol
summa
id
tip
login
fio
email
pass
id
id_tovar
nazv
firma
fotp
opisanie
zena
kol
id
FIO
tel
email
data
status
id_men
1
1

1
1
1




razd
user
zakaz
zakaz_tovar
zak
razd2

1
tovar

Page 21

23
3.2. Назначение скриптов php
Начнем рассмотрения скриптов с главной страницы сайта. С запуском первого
файла php, то есть …/www/index.php, запускается скрипт, в котором начинается
сессия, и в случае если пользователь вошел на сайт в первый раз, то удаляется и
затем создается таблица «zak»:
<?php session_start();
if (isset($_SESSION['dat'])) {
$_SESSION['dat']=$_SESSION['dat']."a"; }
else { $_SESSION['dat']="a"; require_once("connect.php");
$link=mysql_connect($sqlhost,
$sqluser,
$sqlpass)
or
die("MySQL
ioeaea!".mysql_error());
$sql="DROP TABLE `zak`";
$datu=mysql_query($sql);
$sql="CREATE TABLE `zak` (
`id` int(11) NOT NULL auto_increment,
`id_tovar` int(11) NOT NULL default '0',
`nazv` varchar(20) NOT NULL default '',
`firma` varchar(10) NOT NULL default '',
`foto` varchar(50) NOT NULL default '',
`opisanie` text NOT NULL,
`zena` float NOT NULL default '0',
`kol` int(11) NOT NULL default '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=2 ;";
$daty=mysql_query($sql);} ?>
Как видим данный скрип использует файл connect.php, который является
файлом соединяющимся с MySQL и базой данных (данный файл используется во
всех скриптах, связанных с базой данных):
<?php $sqlhost="localhost"; $sqluser="root";

Page 22

24
$sqlpass=""; $db="apogey";
mysql_connect($sqlhost,
$sqluser,
$sqlpass)
or
die("MySQL
Ошибка!".mysql_error());
mysql_select_db($db) or die("Не возможно считывание данных".mysql_error());
?>
Далее скрипты осуществляют отображение того или иного файла php, что
позволяет по отдельности исправлять и видеть ошибки. Отображение файла
folder/start.php:
<?php require_once("folder/start.php"); ?>
Данный файл также содержит в себе скрипт, выполняющий работу с таблицей
каталогов и отображающей в табличном виде последовательность наименований
каталогов:
<?php require_once("connect.php");
$link=mysql_connect($sqlhost,
$sqluser,
$sqlpass)
or
die("MySQL
ioeaea!".mysql_error());
$sql="SELECT id,nazv,vid,por FROM razd where vid=0 order by por";
$data=mysql_query($sql);
while ($row=mysql_fetch_row($data))
{echo "<a href='?id=0&fid=".$row[0]."'>".$row[1]."</a>";}
?>
Появляется кнопка «Входа» в случае верного пароля и логина, которая
переходит в http://localhost/www/meneger/?act=new&id=№ менеджера в случае с
менеджером и http://localhost/www/admin/?1 в случае с администратором:
<?
$link=mysql_connect($sqlhost,
$sqluser,
$sqlpass)
or
die("MySQL
Ошибка!".mysql_error());
$sql2="SELECT id,login,pass,tip FROM user where tip=1";
$data2=mysql_query($sql2);
while ($line2=mysql_fetch_row($data2))
{ if (($line2[1]==$_POST['name']) and ($line2[2]==$_POST['pass'])) {

Page 23

25
echo
"<form
action='http://localhost/Tools/apogey/www/meneger/?act=new&id=".$line2[0]."'
method='post'>
<input type='submit' value='Вход;'>
</form>";} }
$link=mysql_connect($sqlhost,
$sqluser,
$sqlpass)
or
die("MySQL
Ошибка!".mysql_error());
$sql2="SELECT id,login,pass,tip FROM user where tip=2";
$data2=mysql_query($sql2);
while ($line2=mysql_fetch_row($data2))
{ if (($line2[1]==$_POST['name']) and ($line2[2]==$_POST['pass'])) {
echo "<form action='http://localhost /www/admin/?1' method='post'>
<input type='submit' value='Вход;'>
</form>";} } ?>
Следующий скрипт файла index.php отображает в ссответствии с выбранным
пунктом меню файлы:
<?php
if
(($_SERVER['REQUEST_URI']==$_SERVER
['PHP_SELF'].
"?id=".$_GET['id']) or
($_SERVER['REQUEST_URI']==$_SERVER ['PHP_SELF']."?id=2") or
($_SERVER['REQUEST_URI']==$_SERVER
['PHP_SELF']."?id=".$_GET['id'])){
require_once("catalog/index.php");}
}?>
Следующий файл из предыдущего скрипта это catalog/index.php, который имеет
большое число скриптов, так как он отображает каталоги и в то же время таблицу
товаров, заказов с ссылками в корзину.
Начало массива базы данных:
<? require_once("connect.php");
$sql="SELECT id,vid,nazv,firma,foto,opisanie,zena FROM tovar";

Page 24

26
$dat=mysql_query($sql);
while ($lin=mysql_fetch_row($dat)){
if ($lin[1]==$_GET['fid'])
{?>
Ячейка отображающая фотографию и ссылка но фото в отдельном коне:
<?php
echo
'<a
href="http://localhost/Tools/apogey/www/foto/'.$lin[4].'"
target="_blank"><img src="http://localhost/Tools/apogey/www/foto/'.$lin[4].'" border=1
width=60></a>';
?>
Скрипт ячейки названия и описания:
<?php echo
'<td
valign="top"><b><font
style="font-
size:11px;">'.$lin[2].'</font></b><br>'.$lin[5].'</td>';
?>
Скрипт ячейки цены:
<?php if (trim($lin[6]) && $lin[6]>0)
{ echo $lin[6]; }
else
{ echo "<p>ïîä çàêàç</p>"; }
?>
Кнопка для перехода в таблицу с заказами:
<?php echo
"<form
action='http://localhost/Tools/apogey/www/?id=2&fid=".$_GET['fid']."'
method='post'><input style='width:100%' type='text' value='' style='width:100px'
name='order_".$lin[0]."'>";?>
Закрытие массива и условий: <? }}} ?>
Условие для таблицы заказа уже следующий файл korzin.php, подключение к
временной таблице базы данных и ее заполнение:
<?php
if ($_GET['id']==2) {

Page 25

27
require_once("connect.php");
$link=mysql_connect($sqlhost,
$sqluser,
$sqlpass)
or
die("MySQL
ioeaea!".mysql_error());
$sqql="SELECT vid,id,nazv,firma,foto,opisanie,zena FROM tovar WHERE
vid=".$_GET['fid']; $roww=mysql_query($sqql);
while ($liene=mysql_fetch_row($roww))
{ if (($_POST['order_'.$liene[1]]!=""))
{$sqll="INSERT INTO zak (id,nazv,firma,foto,opisanie,zena,kol,id_tovar)
VALUES ('','".$liene[2]."','".$liene[3]."','".$liene[4]."','".$liene[5]."','".$liene[6]."',
'".$_POST['order_'.$liene[1]]."','".$liene[1]."');";
$rowy=mysql_query($sqll); }} ?>
Создание ссылки для перехода в таблицу каталога, чтобы продолжить набирать
заказы:
<?php require_once("connect.php");
$link=mysql_connect($sqlhost,
$sqluser,
$sqlpass)
or
die("MySQL
ioeaea!".mysql_error());
$sqll="SELECT vid,id,nazv FROM razd";
$roww=mysql_query($sqll);
while ($lne=mysql_fetch_row($roww))
{ if ($lne[1]==$_GET['fid'] ){
?>"document.location.href='http://localhost/Tools/apogey/www/?id=0&fid=<?
echo $lne[0]; ?>'" value="Ïðîäîëæèòü âûáîð" />
<? }}?>
Выбор временной таблицы заказа для отображения ее данных, подсчет суммы:
<? require_once("connect.php");
$link=mysql_connect($sqlhost,
$sqluser,
$sqlpass)
or
die("MySQL
ioeaea!".mysql_error());
$siql="SELECT id,nazv,firma,foto,opisanie,zena,kol FROM zak";
$rowu=mysql_query($siql);
$summa=0;

Page 26

28
while ($arry = mysql_fetch_array($rowu))
{
$summa=$summa+$arry[5]*$arry[6];
?>
Отображение ячейки фотографии товара с ссылкой на фото:
<?php
if (trim($arry[3]))
{ echo '<a href="http://localhost/Tools/apogey/www/foto/'.$arry[3].'"
target="_blank"><img src="http://localhost/Tools/apogey/www/foto/'.$arry[3].'" border=1
height=30></a>'; }
else {
echo '&nbsp;'; }
?>
Скрипт для отображения названия и описания товара:
<?= $arry[1] ?></b><br><?= $arry[4] ?></td>
<td align="center">
Скрипт для ячейки количество:
<?= $arry[6] ?>
Cкрипт ячейки таблицы корзины цена:
<?php if(trim($arry[5]) && $arry[5]>0)
{ echo $arry[5];
}?>
Последний скрипт данной таблицы:
<?php echo"<a href='del.php?id=".$arry[0]."&fid=".$_GET['fid']."'>Убрать</a>";?>
Отображение итоговой суммы:
<? echo $summa ?>
Переход к каталогу для продолжения заказа:
<?php echo "<form action='zakaz.php?id=0&fid=".$_GET['fid']."' method='post'>";
?>
При удалении товара с корзины открывается файл del.php, а при отправке
заказа zakaz.php. У удаления скрипт следующий:
<?php

Page 27

29
require_once("connect.php");
$sSQL="DELETE FROM zak WHERE id=".$_GET['id'];
mysql_query($sSQL) or die(mysql_error());
echo
"<form
action='http://localhost/Tools/apogey/www/?id=0&fid=".$_GET['fid']."'
method='post'>
<input type='submit' value='OK'>
</form>";?>
У отправки заказа, который осуществляет также проверку на наличие
незаполненных обязательных полей и выводит сообщение:
<?php
if (($_POST['fio']!="") and ($_POST['phone']!="") and ($_POST['email']!="")) {
require_once("connect.php");
$linka=mysql_connect($sqlhost,
$sqluser,
$sqlpass)
or
die("MySQL
ioeaea!".mysql_error());
$ql="INSERT INTO zakaz (id,FIO,tel,email,data,dost,bank)
VALUES ('','".$_POST['fio']."','".$_POST['phone']."','".$_POST['email']."','".date('y-
m-d')."','".$_POST['browser']."','".$_POST['select']."')";
$rut=mysql_query($ql); $sqql="SELECT id_tovar,zena,kol FROM zak";
$roww=mysql_query($sqql); $ql="SELECT id FROM zakaz";
$rut=mysql_query($ql); $ln=mysql_fetch_row($rut);
while ($ln=mysql_fetch_row($rut)) { $s=$ln[0];}
while ($liine=mysql_fetch_row($roww)) {
$qll="INSERT INTO tovar_zakaz (id,id_tovar,id_zakaz,summa,kol)
VALUES ('','".$liine[0]."','".$s."','".$liine[1]*$liine[2]."','".$liine[2]."')";
$rut=mysql_query($qll);}
echo
"<form
action='http://localhost/Tools/apogey/www/?id=0&fid=".$_GET['fid']."'
method='post'>
<input type='submit' value='OK'>";

Page 28

30
В случае отправки заказа: таблица корзины уничтожается и создается заново:
require_once("connect.php");
$link=mysql_connect($sqlhost,
$sqluser,
$sqlpass)
or
die("MySQL
ioeaea!".mysql_error());
$sql="DROP TABLE `zak`"; $datu=mysql_query($sql);
$sql="CREATE TABLE `zak` ( `id` int(11) NOT NULL auto_increment,
`id_tovar` int(11) NOT NULL default '0', `nazv` varchar(20) NOT NULL default '',
`firma` varchar(10) NOT NULL default '', `foto` varchar(50) NOT NULL default '',
`opisanie` text NOT NULL, `zena` float NOT NULL default '0',
`kol` int(11) NOT NULL default '0', PRIMARY KEY (`id`))
ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=2 ;";
$daty=mysql_query($sql);
?> <?php } else { echo
"<form
action='http://localhost/Tools/apogey/www/?id=22&fid=".$_GET['fid']."'
method='post'> <input type='hidden' name='d' value='ok'>
<input type='submit' value='OK'>";?>
С этим и закончились скрипты каталога.
При осуществлении поиска по каталогу, запускается файл search.php, которая
отображает товар и каталоги также как и до этого, только с запросами введенного в
поле поиска.
Более подробно об остальных скриптах можно просмотреть в приложении
курсовой работы. Которая представлена с подробным разъяснением кода.
3.3 Описание интерфейса
3.3.1 Интерфейс сайта
Сайт запускается по ссылке http://localhost/. Появляется главное окно, где мы
видим слева список каталога и возможность входа с вводом пароля, также
возможность поиска.

Page 29

31
Рисунок 3.2 – Главное меню сайта
При щелчке по каталогу компьютеров, то есть по любому из перечисленных
наименований каталога происходит переход в страничку, где в центре отображается
список товаров данного каталога.
Рисунок 3.3 – Каталог товаров «Системные блоки»

Page 30

32
Если пройти по любому из предложенных каталогов оргтехники, получим
такой же подобный каталог товара.
Рисунок 3.4 – Каталог товара «Принтеры»
Где можно указывать количество желаемой продукции и перейти к форме
заказа.
Рисунок 3.5 – Заказ товара

Page 31

33
Как видно в данном окне есть возможность поиска, которая выводит результат
поиска по каталогу товаров.
Рисунок 3.6 – Результат поиска по параметру «canon»
При входе в административную или менеджерскую часть открывается
следующее окно со следующим запросом:
Рисунок 3.7 – Запрос ввода пароля
3.3.2 Интерфейс менеджера
Рассмотрим интерфейс менеджера. При входе в систему под менеджером
появляется страничка с новыми заказами.

Page 32

34
Рисунок 3.8 – Страничка менеджера
Выбирая два оставшихся пункта меню: мои заказы, выполненные заказы,
появляется такое же окно, что и начальная только таблица содержит другие данные.
При переходе по ссылке заказчик появляется список всевозможных заказчиков,
с их данными.
Рисунок 3.9 – Заказчики

Page 33

35
При щелчке на исполнителе появляются все менеджеры данной организации,
эта возможность позволяет передать заказ другому менеджеру.
Рисунок 3.10 – Менеджеры
Также возможна смена статуса заказа, но при выборе пункта выполняется,
другие менеджеры не могу отслеживать данный заказ.
Рисунок 3.11 – Смена статуса заказа

Page 34

36
При просмотре открывается окно заказа и можно увидеть все наименования и
количества данного заказа.
Рисунок 3.12 – Окно счета
3.3.3 Интерфейс администратора
Администратор также как и менеджер входит в систему, вводя пароль. Первое
окно, которое открывается, отображает список каталога компьютеров, которые он
может удалять, добавлять, удалять и просматривать их содержимое.
Рисунок 3.13 – Главное окно административной части

Page 35

37
В следующем рисунке представлен пример редактирования окна, он аналогичен
окну добавления, не только каталогу но и другого рода информации (товары,
пользователи), рассматриваемой далее.
Рисунок 3.14 – Редактирование каталога
Следующее окно аналогична со всеми другими окнами удаления, она
отображает окно удаление товара.
Рисунок 3.15 – Удаление товара
Далее рассмотрим пункт просмотра содержимого каталога, при выборе
которого открывается каталог товаров с возможностью удаления и редактирования.

Page 36

38
Рисунок 3.16 – Каталог товаров
Добавлять товар в подкаталоги можно нажав на плюсик расположенный в
каталогах компьютера и оргтехники там где необходимо пополнить товар, так
появляется следующее окно, используя который мы можем добавлять .csv файл,
подготовленный заранее.
Рисунок 3.17 – Добавление товара в каталог

Page 37

39
Последним пунктом меню является «пользователи», в которой указана таблица
пользователей входящих в систему с паролем (то есть менеджеры и
администраторы).
Рисунок 3.18 – Пользователи сайта

Page 38

40
4. ТЕСТЫ ДЛЯ ПРОВЕРКИ РАБОТОСПОСОБНОСТИ СИСТЕМЫ
4.1 Тестирование системы покупателя
Переход по пункту меню
1. Нажимаем на пункт меню (Каталога и на главную).
2. В середине страницы отображается соответствующее значение, а именно:
Каталоги товаров и информация главной страницы.
3. Все перечисленные пункты выполняются
Поиск по каталогу
1. Вводим параметр поиска, например, canon.
2. Нажимаем enter.
3. Открывается окно с результатом, где отображены список каталогов, где
содержаться списки товаров в соответствующей таблице.
4. Все параметры содержат данное слово, отсюда тест выполняется
Авторизация пользователей
1. Нажимаем вход
2. Ввод логина и пароля.
3. Нажатие кнопки Ок.
4. Попадаем в соответствующее для пользователя место (менеджер – в панель
менеджера, администратор - в панель администрирования).
5. Выполнение всех пунктов.
Переход в каталог из таблицы товара
1. Нажимаем кнопку перехода в каталог.
2. Переход в каталог с содержанием подкаталога, куда входил данный перечень
товаров – условие выполняется.
Добавление товара в корзину
1. Вводим количество.
2. Нажимаем enter или кнопку заказа.
3. Вывод в таблице корзины товара с указанным количеством – пункты
выполняются.

Page 39

41
Работа кнопки «Продолжить выбор»
1. Нажимаем кнопку в корзине заказа «продолжить выбор».
2. Переходим в каталог продукции – выполняется.
Убрать заказ
1. Выбираем убрать товар в корзине.
2. Товар успешно удален – выполняется.
Способ оплаты и доставки
1. Выбираем способ оплаты через любой банк.
2. Выбираем с доставкой.
3. Получаем результат.
4. Производим вычисление вручную.
5. Сравниваем результаты – верно.
Отправление заказа без введения обязательных полей
1.Нажимаем кнопку отправления заказа.
2. Выводит сообщение об ошибке.
Отправление заказа с заполненными обязательными полями
1.Заполняем информацию.
2. Нажимаем кнопку отправить заказ.
3. выводится сообщение об отправке.
4. Таблица корзины очищается – выполняется.
4.2 Тестирование системы менеджера
Пункт меню «новые заказы»
1.Щелкаем по пункту меню новые заказы.
2. Отображаются только те заказы, которые имеют статус прибыл –
выполняется.
Пункт меню «Мои заказы»
1. Щелкаем по пункту меню мои заказы.
2. Выводятся те заказы, которые относятся к данному менеджеры и имеют
статус выполняется – условие осуществляется.

Page 40

42
Пункт меню «Выполненные заказы»
1. Щелкаем пункт меню выполненные заказы.
2. Выводятся все выполненные заказы – осуществляется.
Изменение статуса заказа
1. Выбираем статус.
2. Открывается окно изменение статуса.
3. Выбираем статус.
4. Заказу присваивается данный статус – выполняется.
4.3 Тестирование системы администратора
Добавление, изменение и удаление новости, каталога и пользователя
1. Нажимаем соответствующую кнопку.
2. Открывается окно добавления (с пустыми ячейками), изменения (с
заполненными ячейками) и удаления (с неизменяемыми ячейками).
3. Выполнение добавления, изменения и удаления – все условия вуполняются.
Вход в таблицу товаров
1.Нажимаем вход.
2. Открывается окно товаров – выполнено.
Добавление товара
1. Щелкаем по плюсику.
2. Появляется окно, в котором вбираем путь к файлу csv.
3. Нажимаем отправку.
4. Все значения добавлены – выполняется.

Page 41

43
ЗАКЛЮЧЕНИЕ
При разработке интернет-магазина, для удобства было обозначено несколько
частей: администраторская, клиентская и программная.
Администраторская часть содержит инструменты управления интернет –
магазином и включает в себя как общие настройки магазина, так и специальные
настройки.
В клиентской части архитектуры разрабатывается максимально удобная и
доступная работа потенциального клиента на страницах интернет – магазина.
Разработка интерфейса, доступные и понятные диалоговые окна, удобные системы
оплаты и доставки товаров.
Программная часть архитектуры интернет – магазина рассматривается как
взаимосвязь операционной и серверной части.
Серверная часть содержит в себе размещение интернет магазина на сайте
провайдера, поддерживающие технологии, используемые при создании интернет –
магазина.
Для создания интернет магазина выбор пал на php. Это мощная среда для
разработки, совместимая со всеми операционными системами и браузерами, не
требующая высоких аппаратных средств компьютера, довольно проста в освоении и
продолжает развиваться и совершенствоваться. Также он поддерживается
подавляющим большинством платных хостингов, что является несомненным
плюсом

Page 42

44
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
1. Дэниел Эймор «Internet-магазины и закупочная деятельность»/«Электронный
бизнес. Эволюция и/или революция» изд. «Вильямс» 2001 г. С. 291-302.
2. Пирогов С.В. - «Обзорных крупных проектов» /«Электронная коммерция»
Москва 2003 - С.69-61
3. Балабанов И.Т. -
«Торговля через виртуальный магазин» /«Электронная
коммерция»/ 2004г. С.195-197
4. Паршенцев А.А. Проблема и перспективы развития электронных магазинов //
Маркетинг в России и за рубежом. – 2000. - № 3. – С. 84-89.
5. Курс ЦИТ «Internet-технологии в проектах с пластиковыми карточками».
6. В. Завалеев, «Центр», 1998.
7. «Информационные Технологии: Теория и практика рекламы в России».
8. И. Крылов, «Центр», 1996.
9. «Network Magazine», №10, 1999.
10.«PC WEEK», №6, 1998.
11.Орлов, Л. Как создать электронный магазин в Интернет. – М.: Альянс–пресс,
2007.
12.Орлов, Л. Как создать электронный магазин в Интернет. Все об организации
Интернет–магазина. – М.: Новый издательский дом, 2008
13.Шкрыль А.А., PHP – это просто. Программируем для web-сайта. – СПб.: БХВ-
Петербург, 2007.
14.Бардзелл Джеффри, Macromedia Dreamweaver 8 с ASP, ColdFusion и PHP. Из
первых рук.: пер с англ. – ЭКОМ Паблишерз, 2007.
15.Васвани Викрам, Полный справочник по MySQL.: пер с англ. – М.:
Издательский дом «Вильямс», 2006.

Page 43

45
ПРИЛОЖЕНИЕ А
Текст программы
Index.php
<?php session_start();
if (isset($_SESSION['dat'])) {
//начало сессии
$_SESSION['dat']=$_SESSION['dat']."a";
}
else
{ header('location:index.php');
$_SESSION['dat']="a"; //если сессия только началась создается таблица zak
require_once("connect.php"); // соединение с базой данных используя след файл
$link=mysql_connect($sqlhost, $sqluser, $sqlpass) or die("MySQL ioeaea!".mysql_error());
mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");
//для нормального отображения текста базы данных выбираем соответствующую кодировку
браузера
$sql="DROP TABLE `zak`";
$datu=mysql_query($sql); // создание базы данных
$sql="CREATE TABLE `zak` (
`id` int(11) NOT NULL auto_increment,
`id_tovar` int(11) NOT NULL default '0',
`nazv` varchar(20) NOT NULL default '',
`firma` varchar(10) NOT NULL default '',
`foto` varchar(50) NOT NULL default '',
`opisanie` text NOT NULL,
`zena` float NOT NULL default '0',
`kol` int(11) NOT NULL default '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=2 ;";
$daty=mysql_query($sql);}
// создания отображения верхней части странички, то есть не изменяемой информации
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<!-- DW6 -->
<head>
<!-- Copyright 2005 Macromedia, Inc. All rights reserved. -->
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Магазинчик</title>
<link rel="stylesheet" href="2col_leftNav.css" type="text/css" />
</head>
<!-- The structure of this file is exactly the same as 2col_rightNav.html;
the only difference between the two is the stylesheet they use -->
<body>
<div id="masthead"><table width=100%><tr><td align="left">
<h1 id="siteName">Продажа компьютора и оргтехники</h1> </td><td align="right"><img
align="middle"src="1.jpg" width="100" height="70" /></td></tr></table>
</div>

Page 44

46
<!-- end masthead -->
<div id="content">
<?php if (($_SERVER['REQUEST_URI']==$_SERVER ['PHP_SELF'])) {
//отображение главной странички
?>
<h2 id="pageName">Главная</h2>
<div class="feature"><img src="2.jpg" width="280" height="200" />
<h3>О фирме</h3>
<p align="justify"> Интернет магазин компьютеров и оргтехники рад приветствовать вас на
своей торговой площадке. Если вас интересует продажа компьютеров, продажа ноутбуков, а также
продажа компьютерных комплектующих, мы поможем вам сделать правильный выбор. Наш
магазин оргтехники имеет широкий ассортимент и приемлемые цены, и вас порадует быстрая и в
срок доставка компьютерных товаров.</p>
</div>
<div class="story">
<h3>Из истории</h3>
<p align="justify"> Торговая сеть «Компьютика» создана в 1993 году. На сегодняшний день
«Компьютика» является одним из лидеров российского рынка БТиЭ, занимая долю 9%.</p>
<p align="justify">За счет постоянной оптимизации ассортимента, внедрения современных
логистических и информационных технологий, оптимизации взаимоотношений с поставщиками, а
также благодаря использованию эффективных маркетинговых и рекламных средств в 2006 году
торговая сеть достигла самых высоких темпов развития в отрасли — порядка 69%в год.</p>
<p align="justify">В основе безупречной репутации бренда «Компьютика» лежат мировые
стандарты организации торгового процесса, клиентоориентированный сервис, широчайший выбор
качественных товаров и услуг и доступный уровень цен в современных гипермаркетах сети. </p>
</div>
<?php } else {
// отображение каталогов товара
if (($_SERVER['REQUEST_URI']==$_SERVER ['PHP_SELF']."?id=".$_GET['id']) or
($_SERVER['REQUEST_URI']==$_SERVER ['PHP_SELF']."?id=2") or
($_SERVER['REQUEST_URI']==$_SERVER ['PHP_SELF']."?id=".$_GET['id'])){
require_once("catalog/index.php");}
}?>
</div>
<!--end content -->
<div id="navBar">
<div id="search">
<?php
//форма поиска
echo "<form action='search.php' method='post'>"; ?>
<label>Поиск</label>
<input name="searchFor" type="text" size="20" />
<input type="submit" value="поиск" />
</form>
</div>
<div class="relatedLinks">
<a href='index.php'>Главная</a>
<h3>Компьютеры</h3>
<ul>
<?php
//каталог компьютеров

Page 45

47
require_once('folder/razd.php'); ?>
</ul>
</div>
<div class="relatedLinks">
<h3>Оргтехника</h3>
<ul>
<?php
//каталог оргтехники
require_once('folder/razd2.php');
//кнопки входа
?>
</ul>
</div>
<div id="advert"> <form action="admin/pass.php">
<input type="submit" value="Вход как админ" />
</form>
<form action='meneger/pass.php' />
<input type="submit" value="Вход как менеджер" />
</form></div>
</div>
<!--end navbar -->
<div id="siteInfo">&copy;2009 Компьютика</div>
<br />
</body>
</html>
Connect.php (во всех папках)
<?php //подключение к MySQL и к базе данных
$sqlhost="localhost";
$sqluser="root";
$sqlpass="";
$db="comp";
mysql_connect($sqlhost, $sqluser, $sqlpass) or die("MySQL error!".mysql_error());
mysql_select_db($db) or die("bd error".mysql_error());
?>
Search.php
<? require_once("connect.php");
$link=mysql_connect($sqlhost, $sqluser, $sqlpass) or die("MySQL
&#1086;&#1096;&#1080;&#1073;&#1082;&#1072;!".mysql_error());
mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");
// фильтр по названию товара из таблицы товара в соотвестствии с введенными в ячейку данных
$sql="SELECT id,nazv,opisanie,zena,foto FROM tovar where nazv LIKE
'%".$_POST['searchFor']."%'";
$data=mysql_query($sql);
while ($lin=mysql_fetch_row($data)){
// вывод результата по таблице товра в таблицу
?>
<table cellSpacing=0 cellPadding=2 width="99%" border=6 class=goods><tr><td>

Page 46

48
<?php
echo '<font style="font-size:11px;"><b>'.$lin[1].'</b><br><table
width=50%><tr><td align="centre"><a href="foto/'.$lin[4].'" target="_blank"><img src="foto/'.$lin[4].'"
border=1 width=150></a></td>';
echo '<td width=240>'.$lin[2].'</td></tr></table></font><br><br><table
width=100%><tr><td><b>Цена: </b>';
?>
<?php
if (trim($lin[3]) && $lin[3]>0)
{
echo $lin[3].'руб.';
}
else
{
echo "<p>под заказ</p>";
}?>
<?php
echo "</td><td><form action='index.php' method='post'><input type='text' value=''
style='width:100px' name='order_".$lin[0]."'>";?>
<input type="submit" name="add_order" style="font-size:10px;" id=add_order value="Добавить в
заказ"></form></tr></table></td><? }?></tr><tr>
<?
$link=mysql_connect($sqlhost, $sqluser, $sqlpass) or die("MySQL
&#1086;&#1096;&#1080;&#1073;&#1082;&#1072;!".mysql_error());
mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");
// фильтр по описанию товара из таблицы товара в соотвестствии с введенными в ячейку данных
$sql="SELECT id,nazv,opisanie,zena,foto FROM tovar where opisanie LIKE
'%".$_POST['searchFor']."%'";
$data=mysql_query($sql);
while ($lin=mysql_fetch_row($data)){
?>
<table cellSpacing=0 cellPadding=2 width="99%" border=6 class=goods><tr><td>
<?php
echo '<font style="font-size:11px;"><b>'.$lin[1].'</b><br><table
width=50%><tr><td align="centre"><a href="foto/'.$lin[4].'" target="_blank"><img src="foto/'.$lin[4].'"
border=1 width=150></a></td>';
?>
<?php
echo '<td width=240>'.$lin[2].'</td></tr></table></font><br><br><table
width=100%><tr><td><b>Цена: </b>';
?>
<?php
if (trim($lin[3]) && $lin[3]>0)
{echo $lin[3].'руб.';
}
else
{echo "<p>под заказ</p>";
}?>
<?php

Page 47

49
echo "</td><td><form action='index.php' method='post'><input type='text' value=''
style='width:100px' name='order_".$lin[0]."'>";?>
<input type="submit" name="add_order" style="font-size:10px;" id=add_order value="Добавить в
заказ"></form></tr></table>
</td><? }?></tr><tr><?
$link=mysql_connect($sqlhost, $sqluser, $sqlpass) or die("MySQL
&#1086;&#1096;&#1080;&#1073;&#1082;&#1072;!".mysql_error());
mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");
$sql="SELECT nazv,opisanie,zena,foto,id FROM tovar where zena LIKE
'%".$_POST['searchFor']."%'";
$data=mysql_query($sql);
while ($lin=mysql_fetch_row($data)){
?>
<table cellSpacing=0 cellPadding=2 width="99%" border=6 class=goods><tr><td>
<?php
echo '<font style="font-size:11px;"><b>'.$lin[0].'</b><br><table
width=50%><tr><td align="centre"><a href="foto/'.$lin[3].'" target="_blank"><img src="foto/'.$lin[3].'"
border=1 width=150></a></td>';
echo '<td width=240>'.$lin[1].'</td></tr></table></font><br><br><table
width=100%><tr><td><b>Цена: </b>';
if (trim($lin[2]) && $lin[2]>0)
{echo $lin[2].'руб.';
}else{
echo "<p>под заказ</p>";
echo "</td><td><form action='index.php' method='post'><input type='text' value=''
style='width:100px' name='order_".$lin[4]."'>";?>
<input type="submit" name="add_order" style="font-size:10px;" id=add_order value="Добавить в
заказ"></form></tr></table>
</td><? }?>
</tr></table><?php
echo "<br><br>";
echo "<form action='index.php' method='post'>
<input type='submit' value='OK'>
</form>"
?>
Foldr/razd.php
<?php //отображение списка названия каталогов из таблицы razd компьютеров
require_once("connect.php");
$link=mysql_connect($sqlhost, $sqluser, $sqlpass) or die("MySQL ioeaea!".mysql_error());
mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");
$sql="SELECT id,nazv,vid,por FROM razd where vid=0 order by por";
$data=mysql_query($sql);
while ($row=mysql_fetch_row($data))
{
echo "<a href='?id=0&fid=".$row[0]."'>".$row[1]."</a>";}
?>

Page 48

50
ПРИЛОЖЕНИЕ Б Схема сайта
Главная страница
Вход
менеджер
Вход
админ.
Логин/пароль
Логин/пароль
Новые
заказы
Мои
заказы
Выполн
заказы
Каталог
оргтехники
Каталог
комп
Пользоват
Добавить
Каталог
Компьютеры
Монитор
Системник
Комплект
Сетевое
обор
Сканеры
Принтеры
Офисная
Банковское
Оргтехника
Корзина
Рисунок Б.1-Схема сайта

Page 49

51
ПРИЛОЖЕНИЕ В Алгоритм работы сайта
Рисунок В.1- Алгоритм покупки в интернет магазине

Информация о работе Розробка інтернет магазину компьютерної техніки