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

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 16.12.2013
Размер файла 482,0 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

ВВЕДЕНИЕ

База данных (БД) - это хранилище для некоторого набора занесенных в компьютер данных.

SQL - это сокращенное название структурированного языка запросов (Structured Query Language); является инструментом, предназначенным для выборки и обработки информации, содержащейся в компьютерной БД.

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

Если пользователю необходимо получить информацию из базы данных, он запрашивает её у СУБД с помощью SQL. СУБД находит требуемые данные и отправляет их пользователю. Процесс запрашивания данных называется запросом к БД.

Рисунок 1 - использование SQL для доступа к БД

Организация данных и способы доступа к ним, обеспечиваемые СУБД, называются моделью данных (иерархическая, сетевая, реляционная, пост реляционная, многомерная, объектно-ориентированная). Модель данных определяет «лицо» СУБД и круг приложений, для которых она подходит наилучшим образом.

Реляционной называется база данных, в которой все данные, доступные пользователю, организованы в виде таблиц, а все операции над данными сводятся к операциям над этими таблицами. Таким образом, в реляционной базе данных информация организована в виде таблиц. У каждой таблицы есть уникальное имя. На пересечении каждой строки с каждым столбцом содержится в точности одно значение данных.

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

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

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

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

Пара «первичный ключ - внешний ключ» создает отношение предок-потомок между содержащими их таблицами.

1. АНАЛИТИЧЕСКИЙ ОБЗОР

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

Основными требования к разрабатываемому программному обеспечению являются:

Осуществить связь с БД для получения нужной информации;

Простой и понятный интерфейс для пользователя;

Легкий доступ к информации, находящейся в БД;

Возможность добавления и удаления в БД;

Скрытность внутренней организации БД;

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

MySQL - бесплатная СУБД;

Хорошо работает с PHP, на котором разрабатывалось ПО;

Имеет гибкую систему привилегий и паролей;

Все операции работы со строками не обращают внимания на регистр символов в обрабатываемых строках;

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

Для реализации поставленной задачи курсового проекта использован пакет Denwer.

Проект AppServ включает в себя:

Apache 2.2.8.

PHP 6.0-dev GD и MySQL.

MySQL 5.0.51b

phpMyAdmin - систему управления MySQL через Web-интерфейс.

Главное достоинство и преимущество AppServ является то что это ПО бесплатное, а так же легко устанавливается и удобно в работе.

2. ТЕХНИЧЕСКОЕ ЗАДАНИЕ

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

3. ПРОЕКТИРОВАНИЕ БАЗЫ ДАННЫХ

3.1 Структура базы данных

Данная база данных создается для обслуживания автосалона. Она будет

состоять из 5 таблиц связанных между собой:

Sotrudniki - Сотрудники:

id_ sotrud -уникальный номер сотрудника (первичный ключ)

neme -имя

post -должность

adress -адрес

phone -телефон;

Avto - Автомобили:

id_avto -уникальный номер авто (первичный ключ)

num_korpusa -номер кузова

num_motor -номер двигателя

cena -цена

data_proizvodstva -дата выпуска

cvet -цвет авто

komplekt -комплектация авто;

Prodazha - Продажа:

id_prodazh -уникальный номер продажи (первичный ключ)

id_avto -уникальный номер авто

name_pokupatel -имя покупателя

num_pasport -номер паспорта

adress -адресс

phone -телефон;

Dolzhnosti -Должности

post -должность сотрудника (первичный ключ)

name -имя сотрудника

adress -адрес сотрудника

phone -телефон сотрудника;

Proizvoditel - Производитель

id_avto- уникальный номер авто (первичный ключ)

marka -марка

num_kuzov -номер кузова

nim_dvig -номер двигателя

cvet -цвет

data_vypusk -дата выпуска авто

data_prihoda -дата поступления авто

komplekt -комплектация

cena -цена авто;

Таблица «Автомобили (в наличии)» связанна первичным ключом с таблицей «Продажа» через вторичный ключ «№ автомобиля».

Таблица «Производитель» связанна первичным ключом с таблицей «Автомобили (в наличии)» через вторичный ключ «Производитель».

Таблица «Должности» связанна первичным ключом с таблицей «Сотрудники» через вторичный ключ «Должность сотрудника».

3.2 Концептуальная модель

Фундаментальными реалиями в концептуальном моделированием являются данные с их свойствами и связи между ними. Главными элементами модели данных являются типы объектов, их атрибуты и типы связей (Рисунок 3.2.1). Типы объектов часто представляют в виде существительных, а типы связей - в виде глаголов.

Размещено на http://www.allbest.ru/

Рисунок 3.2.1 - обозначения элементов диаграммы

На основании этих данных выделим основные объекты базы данных и связи между ними (Рисунок 3.2.2).

Размещено на http://www.allbest.ru/

Рисунок 3.2.2 - концептуальная модель

3.3 Реляционная модель базы данных

Реляционный подход обозначает определенную идеологию создания баз данных. Настойчивое желание пользователей оперировать более крупными объектами, чем элементы данных ТГ-моделей (макрообъектами), предопределило ее появление и способствовало тому, что эта идеология довольно быстро завоевала мир. На скорость распространения идей реляционного подхода значительное влияние в основном оказали два фактора.

Во-первых, БД представляется на внешнем, не зависящем от структуры ЭВМ уровне в виде совокупности двумерных таблиц, повседневно встречающихся в человеческой практике. Работа с таблицами привычна и понятна каждому пользователю. При этом весьма важно, что поиск и обработка информации, хранящейся в таблицах, не зависит от организации хранения данных в памяти

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

Во-вторых, манипулирование данными реляционной базы данных, которая с математической точки зрения представляет собой конечный набор конечных отношений различной арности между заранее определенным множеством элементарных данных, осуществляется в соответствии со специально разработанной для этой цели реляционной теорией. Над отношениями модели можно осуществлять различные алгебраические операции. Теория РБД как раз и определяет, какие операции и каким образом необходимо выполнять над отношениями, чтобы достичь заданной цели.

В настоящее время реляционный подход к построению информационных систем является наиболее распространенным. К числу достоинств реляционного подхода можно отнести:

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

Наличие простого и в то же время мощного математического аппарата, опирающегося главным образом на теорию множеств и математическую логику и обеспечивающего теоретический базис реляционного подхода к организации БД;

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

В результате преобразования концептуальной модели была построена следующая реляционная модель базы данных (Рисунок 3.3.1).

Рисунок 3.3.1 - реляционная модель базы данных

3.4 Процесс нормализации базы данных

Данный процесс - это формальный метод анализа отношений на основе их первичных или потенциальных ключей и существующих функциональных зависимостей, являющийся одним из наиболее строгих способов улучшения характеристик БД. Существует пять нормальных форм (НФ) баз данных.

Первая нормальная форма:

Отношение находится в первой нормальной форме, если все его атрибуты имеют простые (атомарные) значения. Другими словами, значения в домене каждого атрибута отношения не являются ни списками, ни множествами простых или сложных значений. Одним словом, в отношении не должно быть повторяющихся групп. В противном случае отношение считается ненормализованным и ему соответствует многоуровневая таблица (иерархия) в отличие от однородной табличной структуры нормализованного отношения.

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

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

Вторая нормальная форма:

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

Третья нормальная форма:

Говорит от том, что не ключевые атрибуты не должны зависеть друг от друга.

Четвертая нормальная форма:

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

Пятая нормальная форма:

Это такое отношение называется термином "n-декомпозитируемое отношение" для некоторого п > 2. Это значит, что для данного отношения возможна декомпозиция без потерь на п проекций, а на меньшее число проекций декомпозиция без потерь невозможна. Пятая нормальная форма - это последняя нормальная форма, которую можно получить путем декомпозиции, и на практике 5НФ почти не используется. Заметим, что зависимость соединения является обобщением, как многозначной зависимости, так и функциональной зависимости.

3.5 Обоснование наличия НФ

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

Атомарность ключа - значения ключа должны быть атомарные. Не должно быть составных ключей типа ФИО, адрес и т.д.

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

Не ключевые атрибуты должны зависеть только от ключа и не зависеть друг от друга.

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

3.6 Используемые триггеры и процедуры

Для упрощения работы с базой данных будут задействованы триггер:

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

delimiter |

create trigger t1

after insert on prodazha for each row

begin

delete from avto where id_auto = new.id_auto;

end;|

delimiter ;

Процедура с помощью которой можно посмотреть чек по проданной машине

delimiter |create procedure ch(id int)beginselect p.id_auto, name_pokupatel, cena from prodazha p, proizvoditel where p.id_auto = id;end|delimiter ;

4. ПРОЕКТИРОВАНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

Для написания программного обеспечения был выбран язык PHP.

PHP - это язык обработки гипертекста (HTML), используемый на стороне сервера, конструкции которого вставляются в HTML-текст. Его основные преимущества: широкая поддержка различных технологий, совместимость с серверами, базами данных, простота и бесплатность.

4.1 Интерфейс программного обеспечения

Рисунок 4.1.1-Внешний вид

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

Рисунок 4.1.2-Таблица автомобилей

В таблице автомобилей находятся авто те, которые есть в наличии. С лева красная кнопка для удаления записей, а зеленый плюс для внесения в базу автомобилей. Ниже всего списка есть поля с знаком «%» с помощью которых можно отсортировать список по любому из столбцов или значений. По умолчанию «%» это все значения для отображения.

Рисунок 4.1.3-Таблица продажа

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

Рисунок 4.1.4-Чек покупателя

Рисунок 4.1.5-Таблица сотрудников

Рисунок 4.1.6-Таблица производителя

ЗАКЛЮЧЕНИЕ

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

база данные программное интерфейс

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

Справочное руководство по MySQL версии 5.0.3-alpha.

Т. Конверс, Д. Парк и К. Морган. PHP 5 и MySQL.

3. Паэранд Ю.Э., Охрименко П.В. Методические указания по оформлению курсовых проектов и работ /Алчевск: ДГМИ, 2002. - 50 с.

4. Конспект лекций по дисциплине «Организация баз данных».

ПРИЛОЖЕНИЕ А

Создание базы данных:

create database automag;

use automag;

set names cp1251;

Создание таблицы «Avto»

CREATE TABLE `Auto` (

`id_auto` varchar(50) NOT NULL,

`id_korpus` int(11) NOT NULL,

`id_motor` int(11) NOT NULL,

`cena` int(11) NOT NULL,

`data_proizvodstva` date NOT NULL,

`cvet` varchar(50) NOT NULL,

`komplekt` varchar(99) NOT NULL,

PRIMARY KEY (`id_auto`));

Создание таблицы « Dolzhnosti »

CREATE TABLE `Dolzhnosti` (

`post` varchar(50) NOT NULL,

`name` varchar(50) NOT NULL,

`adress` varchar(50) NOT NULL,

`phone` int(11) NOT NULL,

PRIMARY KEY (`post`));

Создание таблицы « Prodazha »

CREATE TABLE `Prodazha` (

`id_prodazh` int(11) NOT NULL,

`id_auto` int(11) NOT NULL,

`name_pokupatel` varchar(50) NOT NULL,

`num_pasport` int(11) NOT NULL,

`adress` varchar(50) NOT NULL,

`phone` int(11) NOT NULL,

PRIMARY KEY (`id_prodazh`));

Создание таблицы « Proizvoditel »

CREATE TABLE `Proizvoditel` (

`id_auto` int(11) NOT NULL,

`marka` varchar(50) NOT NULL,

`id_korpus` int(11) NOT NULL,

`id_motor` int(11) NOT NULL,

`cvet` varchar(50) NOT NULL,

`data_proizvodstva` date NOT NULL,

`data_prihoda` date NOT NULL,

`komplekt` varchar(50) NOT NULL,

`cena` int(11) NOT NULL,

PRIMARY KEY (`id_auto`));

Создание таблицы «Sotrudnik»

CREATE TABLE `Sotrudniki` (

`id_sotrud` varchar(50) NOT NULL default '',

`name` varchar(50) NOT NULL,

`post` varchar(50) NOT NULL,

`adress` varchar(50) NOT NULL,

`phone` varchar(50) NOT NULL,

PRIMARY KEY (`id_sotrud`));

Заполнение таблиц Автомобили

INSERT INTO `Auto` ( `id_auto` , `id_korpus` , `id_motor` , `cena` , `data_proizvodstva` , `cvet` , `komplekt` )

VALUES ('1', '2345', '98765', '65000', '2010.25.09', 'Бежевый', 'Полный');

INSERT INTO `Auto` ( `id_auto` , `id_korpus` , `id_motor` , `cena` , `data_proizvodstva` , `cvet` , `komplekt` )

VALUES ('2', '5678', '678934', '68000', '2011.24.02', 'Белый', 'Люкс');

INSERT INTO `Auto` ( `id_auto` , `id_korpus` , `id_motor` , `cena` , `data_proizvodstva` , `cvet` , `komplekt` )

VALUES ('3', '1344', '254798', '62000', '2011.05.11', 'Черный', 'Премиум');

INSERT INTO `Auto` ( `id_auto` , `id_korpus` , `id_motor` , `cena` , `data_proizvodstva` , `cvet` , `komplekt` )

VALUES ('4', '1234', '543298', '60000', '2011.03.17', 'Зеленый', 'Неполный');

Заполнение таблиц Должности

INSERT INTO `Dolzhnosti` ( `post` , `name` , `adress` , `phone` )

VALUES ('Консультант', 'Нейман Андрей', 'пр-кт Ленина 6\5', '066846325');

Заполнение таблиц Производитель

INSERT INTO `Proizvoditel` ( `id_auto` , `marka` , `id_korpus` , `id_motor` , `cvet` , `data_proizvodstva` , `data_prihoda` , `komplekt` , `cena` )

VALUES ('1', 'ВАЗ2112', '3245', '98765', 'Бежевый', '2010.09.25' , '2010.08.10', 'Полный', 65000');

INSERT INTO `Proizvoditel` ( `id_auto` , `marka` , `id_korpus` , `id_motor` , `cvet` , `data_proizvodstva` , `data_prihoda` , `komplekt` , `cena` )

VALUES ('2', 'ВАЗ2114', '5678', '678734', 'Белый', '2011.02.24' , '2010.02.02', 'Люкс', 68000');

Заполнение таблицы сотрудники

INSERT INTO `Sotrudniki` ( `id_sotrud` , `name` , `post` , `adress` , `phone` )

VALUES ('1', 'Нейман Андрей Олегович, 'Консультант', 'пр-кт Ленина 6\5', '0665478549');

ПРИЛОЖЕНИЕ Б

Структура проекта

action.php - файл обработчик действий.

add.jpg - изображения добавления информации.

ch.jpg- маленькое изображение чека.

ch.php- файл обработчик вывода чека.

ch1.png- изображение верхней части чека.

ch1.png - изображение нижней части чека.

del.jpg - изображение удаления информации.

fil.jpg - изображение фильтра (поиска).

iframe.php - файл вывода информации чека.

include.php - файл работы с БД.

index.php - файл главной таблицы.

phpinfo.php- служебный файл.

script.js - скрипт обработки кликов.

style.css - таблица стилей.

table.php - файл обработки вывода таблиц.

ПРИЛОЖЕНИЕ В

Скрипты сайта

Начальная страница:

<?php

require_once("include.php");

echo "

<html>

<head>

<title>Автосалон" . (!isset($_GET["table"]) ? "" : " : : " . $values[$_GET["table"]]) . "</title>

<script type = 'text/javascript' src = 'script.js'></script>

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

<meta http-equiv = 'content-type' content = 'text/html; charset = windows-1251'>

</head>

<body>

<table style = 'width: 100%; height: 100%' cellpadding = '0' cellspacing = '0'>

<tr>

<td>&nbsp;</td>

<td style = 'width: 1200px;' valign = 'top'>

";

if (!isset($_GET["table"]))

{

echo "<center>";

for ($i = 0; $i < count($ids); $i++)

echo "<input type = 'submit' class = 'selection' value = '" . $values[$i] . "' onMouseOver = 'mouseOver(\"" . $i . "\")' onClick = 'mouseClick(\"" . $i . "\")' />";

echo "

<input type = 'hidden' id = 'table' name = 'table' />

</center>";

}

else

{

$length = count($cols[$ids[$_GET["table"]]]);

$width = 1020 / $length;

$filter = "%";

for ($i = 1; $i < $length; $i++)

$filter .= "~%";

echo "<br />" . $values[$_GET["table"]] . "<br /><br />

<center><table class = 'header'>

<tr>

";

for ($i = 0; $i < $length; $i++)

echo "<td style = 'width: " . $width . "'>" . $cols[$ids[$_GET["table"]]][$i] . "</td>";

echo "

</tr>

</table></center>

<iframe src = 'table.php?table=" . $ids[$_GET["table"]] . "&filter=" . $filter . "' allowTransparency = 'true' frameBorder = '0'></iframe>

<a href = '.'>К выбору таблицы</a>

";

}

echo "

</td>

<td>&nbsp;</td>

</tr>

</table>

</body>

</html>

";

?>

Файл обработчик действий

<?php

require_once("include.php");

function redirect($path)

{ echo "<meta http-equiv = 'refresh' content = '0; " . $path . "'>"; }

if (isset($_GET["action"], $_GET["table"]))

{

$c = mysql_connect("localhost", "root", "1234");

mysql_query("use automag");

mysql_query("set names cp1251");

$prims = array("avto" => "id_auto", "dolzhnosti" => "post", "prodazha" => "id_prodazh", "proizvoditel" => "id_prodazh", "proizvoditel" => "id_auto", "sotrudniki" => "id_sotrud");

if (isset($_GET["id"]) && $_GET["action"] == "delete")

mysql_query("delete from " . $_GET["table"] . " where " . $myss[$_GET["table"]][0] . " = " . $_GET["id"]);

elseif (isset($_GET["val"]) && $_GET["action"] == "add")

{

$exp = explode("~", $_GET["val"]);

if ($exp[0] == "")

{

$q = mysql_query("select max(" . $myss[$_GET["table"]][0] . ") from " . $_GET["table"]);

$f = mysql_fetch_array($q);

$exp[0] = $f[0] + 1;

}

$q = "insert into " . $_GET["table"] . " values(";

for ($i = 0; $i < count($exp); $i++)

$q .= "'" . $exp[$i] . "', ";

$q = substr($q, 0, strlen($q) - 2) . ")";

mysql_query($q);

}

$length = count($cols[$_GET["table"]]);

$filter = "%";

for ($i = 1; $i < $length; $i++)

$filter .= "~%";

redirect("table.php?table=" . $_GET["table"] . "&count=" . $length . "&filter=" . $filter);

mysql_close($c);

}

?>

Файл обработчик вывода чека.

<?php

if (isset($_GET["id_auto"]) && isset($_GET["name_pokupatel"]) && isset($_GET["cena"]))

{

echo "<html><head>

<meta http-equiv = 'content-type' content = 'text/html; charset = windows-1251'>

<title>Сертификат</title>

</head>

<body>

<center><table>

<tr><td><img src = 'ch1.png' /></td></tr>

<tr><td style = 'height: 300px; padding: 20px;'>

<table><tr>

<td valign = 'top'>

<table style = 'font-size: 20px; font-weight: bold; margin-top: 8px;'>

<tr><td align = 'right'>ID Автомобиля:</td></tr>

<tr><td align = 'right'>Имя покупателя:</td></tr>

<tr><td align = 'right'>Стоимость:</td></tr>

</table>

</td>

<td valign = 'top'>

<iframe src = 'iframe.php?id_auto=" . $_GET["id_auto"] . "&name_pokupatel=" . $_GET["name_pokupatel"] . "&cena=" . $_GET["cena"] . "' allowTransparency = 'true' frameBorder = '0'></iframe>

</td>

</tr></table>

</td></tr>

<tr><td><img src = 'ch2.png' /></td></tr>

</table>

";

}

echo "<br /><br /><a href = '.'>К выбору таблицы</a></center></body></html>";

?>

Файл вывода информации чека.

<?php

echo "

<html>

<head>

<meta http-equiv = 'content-type' content = 'text/html; charset = ibm866'>

</head>

<body>

<table style = 'font-size: 20px; font-weight: bold;'>

<tr><td style = 'color: navy;'>" . $_GET["id_auto"] . "</td></tr>

<tr><td style = 'color: navy;'>" . $_GET["name_pokupatel"] . "</td></tr>

<tr><td style = 'color: navy;'>" . $_GET["cena"] . "</td></tr>

</table>

</body>

</html>

";

?>

Файл работы с БД

<?php$ids = array("avto", "prodazha", "dolzhnosti", "proizvoditel", "sotrudniki");$values = array("Автомобили", "Продажа", "Должности", "Производитель", "Сотрудники");$cols = array("avto" => array("ID Автомобиля", "ID Корпуса", "ID Двигателя", "Цена", "Дата производства", "Цвет", "Комплект"),"dolzhnosti" => array("Должность", "ФИО", "Адрес", "Номер телефона"),"prodazha" => array("ID Продажи", "ID Автомобиля", "Имя покупателя", "Номер паспорта", "Адрес", "Номер телефона"),"proizvoditel" => array("ID Автомобиля", "Марка", "ID корпуса", "ID Двигателя", "Цвет", "Дата производства", "Дата прихода", "Комплект", "Цена"),"sotrudniki" => array("ID Сотрудника", "ФИО", "Должность", "Адрес", "Номер телефона"));$myss = array("avto" => array("id_auto", "id_korpus", "id_motor", "cena", "data_proizvodstva", "cvet", "komplekt"),"dolzhnosti" => array("post", "name", "adress", "phone"),"prodazha" => array("id_prodazh", "id_auto", "name_pokupatel", "num_pasport", "adress", "phone"),"proizvoditel" => array("id_auto", "marka", "id_korpus", "id_motor", "cvet", "data_proizvodstva", "data_prihoda", "komplekt", "cena"),"sotrudniki" => array("id_sotrud", "name", "post", "adress", "phone"));/*create database automag;use automag;set names cp1251;create table avto(id_auto int not null, id_korpus int not null, id_motor int not null, cena int not null, data_proizvodstva date not null, cvet varchar(20) not null, komplekt varchar(50) not null, primary key(id_auto));create table dolzhnosti(post varchar(50) not null, name varchar(50) not null, adress varchar(50) not null, phone varchar(10) not null, primary key(post));create table prodazha(id_prodazh int not null, id_auto int not null, name_pokupatel varchar(50) not null, num_pasport int not null, adress varchar(50) not null, phone varchar(10) not null, primary key(id_prodazh));create table proizvoditel(id_auto int not null, marka varchar(50) not null, id_korpus int not null, id_motor int not null, cvet varchar(20) not null, data_proizvodstva date not null, data_prihoda date not null, komplekt varchar(50) not null, cena int not null, primary key(id_auto));create table sotrudniki(id_sotrud int not null, name varchar(50) not null, post varchar(50) not null, adress varchar(50) not null, phone varchar(10) not null, primary key(id_sotrud));delimiter |create trigger tafter insert on prodazha for each rowbegindelete from avto where id_auto = new.id_auto;end;|delimiter ;delimiter |create procedure ch(id int)beginselect p.id_auto, name_pokupatel, cena from prodazha p, proizvoditel where p.id_auto = id;end|delimiter ;*/?>

Файл обработчик кликов

function mouseOver(val)

{

document.getElementById("table").value = val;

}

function mouseClick(val)

{

document.location = ".?table=" + val;

}

function deleteClick(tb, id)

{

document.location = "action.php?action=delete&table=" + tb + "&id=" + id;

}

function addClick(tb, co)

{

val = document.getElementById("val0").value;

for (var i = 1; i < co; i++)

val += "~" + document.getElementById("val" + i).value;

document.location = "action.php?action=add&table=" + tb + "&val=" + val;

}

function filClick(tb, co)

{

fil = document.getElementById("fil0").value;

for (var i = 1; i < co; i++)

fil += "~" + document.getElementById("fil" + i).value;

document.location = "table.php?table=" + tb + "&filter=" + fil;

}

function chClick(id_auto, name_pokupatel, cena)

{

parent.document.location = "ch.php?id_auto=" + id_auto + "&name_pokupatel=" + name_pokupatel + "&cena=" + cena;

}

Файл таблицы стилей

input.selection

{

font: 20px arial, sans-serif;

width: 100%;

height: 140px;

background-color: transparent;

color: #0033dd;

border: solid 1px gray;

padding: 20px;

margin: 10px;

cursor: pointer;

}

input.selection:hover

{

border-color: orange;

}

table td

{

font: 12px arial, sans-serif;

height: 40px;

text-align: center;

}

table td input

{

height: 30px;

text-align: center;

padding: 4px;

}

table td img

{

width: 30px;

padding-left: 10px;

}

table.header

{

margin-left: 8px;

}

table.header td

{

background-color: #0033dd;

color: white;

}

iframe

{

height: 600px;

width: 100%;

}

Файл отображения страниц

<?php

require_once("include.php");

echo "

<html>

<head>

<script type = 'text/javascript' src = 'script.js'></script>

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

<meta http-equiv = 'content-type' content = 'text/html; charset = ibm866'>

</head>

<body>

";

if (isset($_GET["filter"]))

{

$c = mysql_connect("127.0.0.1", "root", "1234");

mysql_query("set names cp1251");

mysql_query("use automag");

$q = "select * from " . $_GET["table"] . " where ";

$exp = explode("~", $_GET["filter"]);

for ($i = 0; $i < count($exp); $i++)

{

$q .= $myss[$_GET["table"]][$i] . " like '" . $exp[$i] . "'";

if ($i < count($exp) - 1)

$q .= " and ";

}

$q = mysql_query($q);

echo "<center><table cellpadding = '0' style = 'margin-left: " . ($_GET["table"] == "prodazha" ? "0" : "44") . "px;'>";

$length = count($cols[$_GET["table"]]);

$width = 1020 / $length;

while ($f = mysql_fetch_array($q))

{

echo "<tr>";

if ($_GET["table"] == "prodazha")

{

$fun = mysql_query("select p.id_auto, name_pokupatel, cena from prodazha p, proizvoditel where p.id_auto = " . $f[1]); // "call ch($f[1])"

$funf = mysql_fetch_array($fun);

echo "<td style = 'cursor: pointer;' onClick = 'chClick(" . $funf[0] . ", \"" . $funf[1] . "\", \"" . $funf[2] . "\")'><img src = 'ch.jpg' /></td>";

}

for ($i = 0; $i < $length ; $i++)

echo "<td style = 'border: solid 1px transparent; width: " . $width . ";'>" . $f[$i] . "</td>";

echo "

<td style = 'cursor: pointer;' onClick = 'deleteClick(\"" . $_GET["table"] . "\", " . $f[0] . ")'><img src = 'del.jpg' /></td>

</tr>";

}

echo "<tr>";

if ($_GET["table"] == "prodazha")

echo "<td style = 'width: 30px;'></td>";

for ($i = 0; $i < $length ; $i++)

echo "<td style = 'width: " . $width . "'><input id = 'val" . $i . "' type = 'text' style = 'width: " . $width . "' /></td>";

echo "

<td style = 'cursor: pointer;' onClick = 'addClick(\"" . $_GET["table"] . "\", " $length . ")'><img src = 'add.jpg' /></td>

</tr>";

if ($_GET["table"] == "prodazha")

echo "<td style = 'width: 30px;'></td>";

for ($i = 0; $i < $length ; $i++)

echo "<td style = 'width: " . $width . "'><input id = 'fil" . $i . "' type = 'text' style = 'width: " . $width . "' value = '%' /></td>";

echo "

<td style = 'cursor: pointer;' onClick = 'filClick(\"" . $_GET["table"] . "\", " . $length . ")'><img src = 'fil.jpg' /></td>

</tr>

</table></center>

";

mysql_close($c);

}

echo "

</body>

</html>

";

?>

Размещено на Allbest.ru

...

Подобные документы

  • Проектирование базы данных "Автосалон" с использованием Microsoft Access. Создание таблиц с информацией об автомобилях, их стоимости, стране-производителе, покупателях. Построение информационной схемы базы, форм для занесения данных в таблицы и отчета.

    контрольная работа [5,2 M], добавлен 28.06.2011

  • Цель создания базы данных, предполагаемые задачи и функции. Описание используемого программного обеспечения. Разработка структуры и схемы базы данных, инфологическое проектирование и перечень SQL-запросов. Разграничение прав доступа, администрирование.

    курсовая работа [2,2 M], добавлен 15.04.2012

  • Использование баз данных менеджерами автосалонов для повышения качества и скорости обслуживания клиентов. Создание запросов на добавление, удаление, обновление данных. Запросы перекрестный, на выборку. Кнопочная форма базы данных с практичным интерфейсом.

    курсовая работа [1,6 M], добавлен 10.02.2014

  • Особенности проектирования программы на языке С++ для обработки данных из таблиц базы данных. Основные функции программы, создание концептуальной модели базы данных и диаграммы классов, разработка интерфейса пользователя и запросов к базе данных.

    курсовая работа [2,1 M], добавлен 08.06.2012

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

    курсовая работа [3,4 M], добавлен 08.09.2015

  • Разработка базы данных с информацией о сотрудниках, товарах, со справочником типов товаров средствами системы управления базами данных MySQL с помощью SQL-запросов. Разработка инфологической модели предметной области. Структура таблиц, полей базы данных.

    контрольная работа [648,7 K], добавлен 13.04.2012

  • Система управления базой данных (СУБД), централизованное обеспечение безопасности и целостности данных, защита от несанкционированного доступа. Построение концептуальной и реляционной моделей. Процесс нормализации. Проектирование базы данных в ACCESS.

    курсовая работа [1,8 M], добавлен 29.10.2008

  • Реализация приложения "Книжный магазин" средствами систем управления базами данных. Проектирование структуры базы данных, определение сущности и атрибутов. Логическое проектирование базы данных и реализация базы данных в СУБД Microsoft Office Access.

    курсовая работа [7,8 M], добавлен 13.02.2023

  • Разработка и программная реализация сайта и базы данных, наполнение базы данных тестовой информацией о товарах. Инструментальные средства создания сайта. Организация тестирования сайта, модуль визуализации интерфейса. Создание запросов в базе данных SQL.

    курсовая работа [1,4 M], добавлен 24.12.2012

  • Создание программ, позволяющих создавать базы данных. Создание таблицы базы данных. Создание схемы данных. Создание форм, отчетов, запросов. Увеличение объема и структурной сложности хранимых данных. Характеристика системы управления базой данных Access.

    курсовая работа [2,1 M], добавлен 17.06.2013

  • Разработка логической схемы базы данных автомобилестроительного предприятия. Инфологическое моделирование системы. Создание графического интерфейса пользователя для базы данных средствами языка программирования Java. Тестирование программных средств.

    курсовая работа [2,3 M], добавлен 16.12.2013

  • Обзор и сравнительная характеристика программного обеспечения для создания СУБД. Принципы организации данных. Основные возможности MS Access. Разработка структуры и реализация средствами SQL базы данных для учета заказов, наличия и продажи автозапчастей.

    курсовая работа [2,5 M], добавлен 27.05.2013

  • Характеристика деятельности футбольного клуба "Челси", формулировка основных задач его информационно-управляющей системы и обоснование требований к его базе данных. Разработка базы данных в среде СУБД Access 2003. Создание запросов на языке QBE и SQL.

    курсовая работа [2,6 M], добавлен 21.02.2011

  • Функции, позволяющие работать с базой данных MySQL средствами РНР. Соединение с сервером и его разрыв. Создание и выбор базы данных. Доступ к отдельному полю записи. Комплексное использование информационных функций. Запросы, отправляемые серверу MySQL.

    лекция [3,5 M], добавлен 27.04.2009

  • Синтаксис, типы данных, используемые в базе данных MySQL. Создание и удаление базы данных, создание таблицы и удаление таблицы, изменение ее свойств. Переименование, вставка и удаление столбцов, изменение их свойств. Обновление и поиск записей в таблице.

    лабораторная работа [641,7 K], добавлен 04.03.2010

  • Принципы построения СУБД, их достоинства. Архитектура распределенной информационной системы. Разработка интернет-магазина рынка книг: построение физической модели данных на языке SQL, проектирование схемы базы данных с использованием веб-интерфейса.

    курсовая работа [2,3 M], добавлен 01.11.2011

  • Концептуальная модель базы данных "Бюро по трудоустройству". Разработка информационного и программного обеспечения объектов автоматизации. Реализация базы данных в СУБД MsAccess. Запросы к базе данных. Таблицы, отчеты и макросы. Интерфейс пользователя.

    курсовая работа [5,2 M], добавлен 30.05.2016

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

    курсовая работа [185,6 K], добавлен 08.11.2008

  • Системы управления базами данных: сущность и характеристика. Типы данных и свойства полей СУБД Access. Объекты базы данных: таблицы, схемы данных, формы, запросы, отчеты. Разработка и проектирование базы данных "Продажи книг" в среде Microsoft Access.

    курсовая работа [1,8 M], добавлен 04.02.2013

  • Формирование входных и выходных данных, SQL–скрипт генерации таблиц базы данных. Создание интерфейса программного приложения и проектирование форм базы данных. Требования к аппаратно–программному обеспечению. Инструкции по установке и эксплуатации.

    курсовая работа [1,6 M], добавлен 08.02.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.