Введение
В рамках выполнения практики необходимо разработать WEB-интерфейс под базу центра по продаже автомобилей. Таким образом, целью работы было спроектировать базу данных, удобную для автоматизации учета транзакций и учета поведения пользователей и сделать возможным ее редактирование через интернет; база должна предоставлять пользователю наиболее полные данные об имеющихся в наличии автомобилях, отвечать специфике центра по продаже автомобилей в целом. Так же в рамках учебной работы база не перегружалась обилием данных.
Были поставлены следующие задачи:
· Анализ предметной области (выявление сущностей, связей, модели работы магазина и ее предпосылок);
· Построение модели базы данных;
· Разработка запросов, позволяющих осуществить поиск и вывод необходимой информации для пользователя;
· Разработка запросов, позволяющих добавлять, удалять и редактировать информацию;
· Разработка WEB-интерфейса для данной БД
1. Описание предметной области
пользователь запрос продажа автомобиль
Описание модели работы центра по продажам и ее предпосылок
В центре по продажам существует каталог товаров — автомобилей; каждая модель может быть представлена в одном или нескольких экземплярах (одинаковых или различных) Покупатель регистрируется на сайте и делает заказ, после чего ему рассчитывается сумма заказа и заказанные автомобили удаляются из базы.
Описание сущностей
PK — Primary Key; FK — Foreign Key
Нужна помощь в написании отчета?
Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Поможем с характеристой и презентацией. Правки внесем бесплатно.
Car
Brand
Customer
Condition
Engine
Описание связей между сущностями
Brand-Car — под брендом может выпускаться неограниченное количество разных автомобилей, связь 1:М
Customer-Order — от одного покупателя может поступать неограниченное кол-во заказов, связь 1:М
Нужна помощь в написании отчета?
Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Поможем с характеристой и презентацией. Правки внесем бесплатно.
Order-Car — один заказ может содержать несколько машин, связь 1:М
VehicleType-Car — несколько машин могут быть одинакового типа, связь 1:М
Condition-Car — несколько машин могут быть одинакового состояния, связь 1:М
Engine-Car — несколько машин могут иметь одинаковые двигатели, связь 1:М
. Описание структуры БД
Модель базы данных
По имеющимся описаниям сущностей и связей в редакторе MySQL Workbench была создана модель, проиллюстрированная нижеследующей диаграммой:
Погружение в Mysql Workbench
Создание базы
Для создания базы было установлено соединение по адресу 127.0.0.1 и именем пользователя root@localhost
На начальный момент база содержала семь пустых таблиц, что подтверждали соответствующие запросы
Работа с запросами к базе
1) SELECT * FROM ((mydb2. Car inner join mydb2. Engine on Car. Engine_idEngine = Engine.idEngine)JOIN mydb2. VehicleType ON Car. VehicleType_idType = VehicleType.idType)JOIN mydb2. Condition ON Car. Condition_Damaged = Condition. Damaged
) SELECT mydb2. Customer. Login, mydb2. Customer. Passwd FROM mydb2. Customer
Нужна помощь в написании отчета?
Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Поможем с характеристой и презентацией. Правки внесем бесплатно.
) INSERT INTO `mydb2`.`Customer` (`idCustomer`, `Name`, `Surname`, `E-mail`, `Adress`, `PhoneNum`, `Login`, `Passwd`)(NULL, ‘$c1’, ‘$c2’, ‘$c3’, NULL, ‘$c4’, ‘$c5’, ‘$c6’);
) DELETE FROM mydb2. Car WHERE Car.idCar = $data[‘idCar’]
3. Описание структуры и функционирования сайта
Начальная страница авторизации, если пользователь не авторизован, он не может зайти на другие страницы кроме регистрации
Страница регистрации
Главная функциональная страница сайта, с нее осуществляется доступ на все остальные страницы. Таблица автомобилей появляется после нажатия на кнопку «Просмотреть базу автомобилей»
Главная страница после нажатия на кнопку «Добавить в базу»
Страница обратной связи
Страница About
. Описание основной страницы
Основная страница позволяет осуществлять просмотр, поиск, редактирование (добавление и удаление), а также переадресация на страницы обратной связи, информации о сайте и выходить из учетной записи
Просмотр базы
Удаление из базы производится посредством установки галочки напротив нужного объекта и нажатия кнопки «Удалить выбранные объекты».
Добавление в базу
Поиск по базе производится после ввода символов в запрос поиска.
Нужна помощь в написании отчета?
Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Поможем с характеристой и презентацией. Правки внесем бесплатно.
Заключение
В результате прохождения учебной практики был создан сайт, способный выполнять все поставленные задачи, а именно просматривать и редактировать базу данных, загруженную на локальный сервер.
Несомненно, для реального использования необходимо более детально и реалистично проработать модель работы центра по продаже, учесть в ней возможные риски, динамику, взаимодействие поставщиками и т.д.
Приложение
SQL-описание:
CREATE SCHEMA `mydb2`;`mydb2`;
— —
Table `mydb2`.`Customer`
-TABLE `mydb2`.`Customer` (
`idCustomer` INT NOT NULL AUTO_INCREMENT,
`Name` VARCHAR(45) NOT NULL,
`Surname` VARCHAR(45) NOT NULL,
`E-mail` VARCHAR(45) NOT NULL,
`Adress` VARCHAR(45) NULL,
`PhoneNum` VARCHAR(45) NOT NULL,
`Login` VARCHAR(45) NOT NULL,
`Passwd` VARCHAR(45) NOT NULL,KEY (`idCustomer`))= InnoDB;
—
Table `mydb2`.`Order`
-TABLE IF NOT EXISTS `mydb2`.`Order` (
`idOrder` INT NOT NULL,
`Date` DATE NULL,
`Sum` VARCHAR(45) NULL,
`Customer_idCustomer` INT NULL,KEY (`idOrder`),`fk_Order_Customer1_idx` (`Customer_idCustomer` ASC),`fk_Order_Customer1`KEY (`Customer_idCustomer`)`mydb2`.`Customer` (`idCustomer`)
)= InnoDB;
—
Table `mydb2`.`Brand`
-TABLE `mydb2`.`Brand` (
`BrandName` VARCHAR(45) NOT NULL,
`Country` VARCHAR(45) NULL,KEY (`BrandName`))= InnoDB;
—
Table `mydb2`.`Condition`
-TABLE `mydb2`.`Condition` (
`Damaged` VARCHAR(3) NOT NULL,
`Mileage` VARCHAR(45) NULL,KEY (`Damaged`))= InnoDB;
— —
Table `mydb2`.`Engine`
-TABLE `mydb2`.`Engine` (
`idEngine` INT NOT NULL AUTO_INCREMENT,
`EngineType` VARCHAR(3) NULL,
`CubicCapacity` INT NOT NULL,
`Horsepower` INT NULL,
`FuelType` VARCHAR(45) NULL,KEY (`idEngine`))= InnoDB;
—
Table `mydb2`.`VehicleType`
-TABLE `mydb2`.`VehicleType` (
`idType` INT NOT NULL AUTO_INCREMENT,
`Type` VARCHAR(45) NOT NULL,
`DoorNum` INT NULL,KEY (`idType`))= InnoDB;
—
Table `mydb2`.`Car`
-TABLE `mydb2`.`Car` (
`idCar` INT NOT NULL AUTO_INCREMENT,
`Brand_BrandName` VARCHAR(45) NOT NULL,
`Model` VARCHAR(45) NOT NULL,
`Gearbox` VARCHAR(2) NOT NULL,
`Engine_idEngine` INT NOT NULL,
`VehicleType_idType` INT NOT NULL,
`Colour` VARCHAR(45) NOT NULL,
`Order_idOrder` INT NULL,
`Condition_Damaged` VARCHAR(3) NOT NULL,KEY (`idCar`),`fk_Car_Order1_idx` (`Order_idOrder` ASC),`fk_Car_Brand1_idx` (`Brand_BrandName` ASC),`fk_Car_Condition1_idx` (`Condition_Damaged` ASC),`fk_Car_Engine1_idx` (`Engine_idEngine` ASC),`fk_Car_VehicleType1_idx` (`VehicleType_idType` ASC),`fk_Car_Order1`KEY (`Order_idOrder`)`mydb2`.`Order` (`idOrder`)
,`fk_Car_Brand1`KEY (`Brand_BrandName`)`mydb2`.`Brand` (`BrandName`)
,`fk_Car_Condition1`KEY (`Condition_Damaged`)`mydb2`.`Condition` (`Damaged`)
,`fk_Car_Engine1`KEY (`Engine_idEngine`)`mydb2`.`Engine` (`idEngine`)
,`fk_Car_VehicleType1`KEY (`VehicleType_idType`)`mydb2`.`VehicleType` (`idType`)
)= InnoDB;
Главная:
<? php_start();
?>
<html>
<head>
<title>Главная</title>
</head>
<body>
<form method= «POST»>
<br>
<center><input type= «text» name= «search» size= «50» placeholder= «Поиск по базе»></center>
<input type= «submit» name= «show» value= «Просмотреть базу автомобилей»><br>
<input type= «submit» name= «del» value= «Удалить выбранные объекты»><br>
<input type= «submit» name= «add» value= «Добавить в базу»><br>
<p align= «right»><input type= «submit» name= «os» value= «Обратная связь»><br>
<input type= «submit» name= «about» value= «О сайте»><br>
<input type= «submit» name= «exit» value= «Выход»><br>
</p><center>
<? php(empty ($_SESSION[‘login’]))
{‘<script>location.replace («/denwer/aut.php»); </script>’; exit;();
}
$action1=$_POST[‘show’];($action1== «Просмотреть базу автомобилей»)
{
$hostname = ‘localhost’;
$username = ‘root’;
$password = «;
Нужна помощь в написании отчета?
Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Поможем с характеристой и презентацией. Правки внесем бесплатно.
$dbName = ‘mydb2’;
/* создать соединение */
$connect_to_db = MYSQL_CONNECT ($hostname,$username,$password) OR DIE («Не могу создать соединение»);_select_db ($dbName,$connect_to_db);
/* Осуществляем определенные операции с СУБД */
$qr_result = mysql_query («select * from ((mydb2. Car inner join mydb2. Engine on Car. Engine_idEngine = Engine.idEngine)join mydb2. VehicleType on Car. VehicleType_idType = VehicleType.idType)join mydb2. Condition on Car. Condition_Damaged = Condition. Damaged») or die (mysql_error());
echo ‘<table border= «1»>’;'<thead>’;'<tr>’;'<th></th>’;'<th>ID</th>’;'<th>Марка</th>’;'<th>Модель</th>’;'<th>Тип КПП</th>’;'<th>Объем двигателя</th>’;'<th>Тип кузова</th>’;'<th>Цвет</th>’;'<th>Номер заказа</th>’;'<th>Повреждения</th>’;'</tr>’;'</thead>’;'<tbody>’;
($data = mysql_fetch_array ($qr_result))
{‘<tr>’;'<td><input type= «checkbox» name= «check1» value= «off»/></td>’;'<td>’. $data[‘idCar’]. ‘</td>’;'<td>’. $data [‘Brand_BrandName’]. ‘</td>’;'<td>’. $data[‘Model’]. ‘</td>’;'<td>’. $data[‘Gearbox’]. ‘</td>’;'<td>’. $data[‘CubicCapacity’]. ‘</td>’;'<td>’. $data[‘Type’]. ‘</td>’;'<td>’. $data[‘Colour’]. ‘</td>’;'<td>’. $data [‘Order_idOrder’]. ‘</td>’;'<td>’. $data[‘Damaged’]. ‘</td>’;'</tr>’;
}
echo ‘</tbody>’;'</table>’;
_CLOSE ($connect_to_db);
}
$action2 = $_POST[‘del’];
$action3 = $_POST[‘add’];
if ($action2 == «Удалить выбранный объект»)
{($_POST[‘check1’] == ‘on’)
{
$hostname = ‘localhost’;
$username = ‘root’;
$password = «;
Нужна помощь в написании отчета?
Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Поможем с характеристой и презентацией. Правки внесем бесплатно.
$dbName = ‘mydb2’;
/* создать соединение */
$connect_to_db = MYSQL_CONNECT ($hostname,$username,$password) OR DIE («Не могу создать соединение»);_select_db ($dbName,$connect_to_db);
/* Осуществляем определенные операции с СУБД */
mysql_close ($connect_to_db);
}echo «Не выбран объект для удаления»;
}
($action3 == «Добавить в базу»)
{‘<p align = «left»><input type= «text» name= «mark» size= «50» placeholder= «Марка»><br>’;'<input type= «text» name= «model» size= «50» placeholder= «Модель»><br>’;'<input type= «text» name= «gb» size= «50» placeholder= «Тип КПП»><br>’;'<input type= «text» name= «cc» size= «50» placeholder= «Объем двигателя»><br>’;'<input type= «text» name= «body» size= «50» placeholder= «Тип кузова»><br>’;'<input type= «text» name= «colour» size= «50» placeholder= «Цвет»><br>’;'<input type= «text» name= «cond» size= «50» placeholder= «Повреждения»><br>’;'<input type= «submit» name= «add2» value= «Добавить»>’;
$w1 = $_POST[‘mark’];
$w2 = $_POST[‘model’];
$w3 = $_POST[‘gb’];
$w4 = $_POST[‘cc’];
$w5 = $_POST[‘body’];
$w6 = $_POST[‘colour’];
$w7 = $_POST[‘cond’];
$add1= $_POST[‘add2’];($add1 == «Добавить»)
{
$hostname = ‘localhost’;
$username = ‘root’;
$password = «;
$dbName = ‘mydb2’;
/* создать соединение */
$connect_to_db = MYSQL_CONNECT ($hostname,$username,$password) OR DIE («Не могу создать соединение»);_select_db ($dbName,$connect_to_db);
/* Осуществляем определенные операции с СУБД */
$qr2 = mysql_query («incert into mydb2. Condition (Damaged, Mileage) values (‘$w7’, NULL)»);
if ($qr2 == true)
{«Автомобиль успешно добавлен в базу»;
}_close ($connect_to_db);
}
}
$act4 = $_POST[‘os’];($act4 == «Обратная связь»)
Нужна помощь в написании отчета?
Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Поможем с характеристой и презентацией. Правки внесем бесплатно.
{‘<script>location.replace («/denwer/os.php»);</script>’; exit;();
}
$act5 = $_POST[‘exit’];($act5 == «Выход»)
{($_SESSION[‘login’]);'<script>location.replace («/denwer/aut.php»);</script>’; exit;();
}
$d2 = $_POST[‘about’];($d2 == «О сайте»)
{‘<script>location.replace («/denwer/about.php»);</script>’; exit;
exit();
}
?>
</form>
</body>
</html>
Авторизация:
Нужна помощь в написании отчета?
Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Поможем с характеристой и презентацией. Правки внесем бесплатно.
<? php_start();
?>
<html>
<head>
<title>Авторизация</title>
</head>
<body>
<form method= «POST»>
<br>
</br>
Логин<br>
<p>
<input type= «text» name= «login» size= «20»><br>
<p>
Нужна помощь в написании отчета?
Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Поможем с характеристой и презентацией. Правки внесем бесплатно.
Пароль<br>
<p>
<input type= «password» name= «passwd» size= «20»><br>
<p>
<input type= «submit» name= «enter» value= «Вход»>
<input type= «submit» name= «reg» value= «Регистрация»><br>
<? php
$action1 = $_POST[‘enter’];
$action2 = $_POST[‘reg’];($action1 == «Вход»)
{
$hostname = ‘localhost’;
$username = ‘root’;
$password = «;
$dbName = ‘mydb2’;
Нужна помощь в написании отчета?
Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Поможем с характеристой и презентацией. Правки внесем бесплатно.
/* создать соединение */
$connect_to_db = MYSQL_CONNECT ($hostname,$username,$password) OR DIE («Не могу создать соединение»);_select_db ($dbName,$connect_to_db);
$query1 = mysql_query («select mydb2. Customer. Login, mydb2. Customer. Passwd FROM mydb2. Customer»);($t=mysql_fetch_array($query1))
{($t[‘Login’]==$_POST[‘login’] AND $t[‘Passwd’]==md5 ($_POST[‘passwd’]))
{
$_SESSION[‘login’]=$_POST[‘login’];'<script>location.replace («/denwer/start.php»);</script>’; exit;
exit();
}
}«Ошибка входа: неверный логин или пароль»;
mysql_close ($connect_to_db);
}
($action2 == «Регистрация»)
{‘<script>location.replace («/denwer/reg.php»);</script>’; exit;
exit();
Нужна помощь в написании отчета?
Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Поможем с характеристой и презентацией. Правки внесем бесплатно.
}
?>
</form>
</body>
</html>
Регистрация:
<html>
<head>
<title>Регистрация</title>
</head>
<body>
<form method= «POST»>
<center>
<br>
Нужна помощь в написании отчета?
Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Поможем с характеристой и презентацией. Правки внесем бесплатно.
<table border= «1»>
<thead>
<tr>
<th>Логин</th>
<th><input type= «text» name= «login» size= «35»></th>
</tr>
<tr>
<th>Пароль</th>
<th><input type= «text» name= «passwd» size= «35»></th>
</tr>
<tr>
<th>Имя</th>
<th><input type= «text» name= «name1» size= «35»></th>
</tr>
<tr>
<th>Фамилия</th>
<th><input type= «text» name= «surname» size= «35»></th>
</tr>
<tr>
<th>Email</th>
<th><input type= «text» name= «email» size= «35»></th>
</tr>
<tr>
<th>Телефон</th>
<th><input type= «text» name= «phonenum» size= «35»></th>
</tr>
</thead>
</tbody>
</table>
</br>
<input type= «submit» name= «finish» value= «Зарегестрироваться»>
<input type= «submit» name= «back» value= «Назад»>
<? php
$act1 = $_POST[‘finish’];
$act2 = $_POST[‘back’];($act1 == «Зарегестрироваться»)
{
$hostname = ‘localhost’;
$username = ‘root’;
$password = «;
$dbName = ‘mydb2’;
/* создать соединение */
$connect_to_db = MYSQL_CONNECT ($hostname,$username,$password) OR DIE («Не могу создать соединение»);_select_db ($dbName,$connect_to_db);
Нужна помощь в написании отчета?
Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Поможем с характеристой и презентацией. Правки внесем бесплатно.
$c1 = $_POST[‘name1’];
$c2 = $_POST[‘surname’];
$c3 = $_POST[’email’];
$c4 = $_POST[‘phonenum’];
$c5 = $_POST[‘login’];
$c6 = md5 ($_POST[‘passwd’]);
$q2 = mysql_query («INSERT INTO `mydb2`.`Customer` (`idCustomer`, `Name`, `Surname`, `E-mail`, `Adress`, `PhoneNum`, `Login`, `Passwd`)(NULL, ‘$c1’, ‘$c2’, ‘$c3’, NULL, ‘$c4’, ‘$c5’, ‘$c6’);»);
if ($q2 == true)
{«Регистрация пройдена успешно»;
}
_close ($connect_to_db);
}($act2 == «Назад»)
{‘<script>location.replace («/denwer/aut.php»);</script>’; exit;
exit();
}
?>
Нужна помощь в написании отчета?
Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Поможем с характеристой и презентацией. Правки внесем бесплатно.
</form>
</body>
</html>
Обратная связь:
<? php_start();
?>
<html>
<head>
<title>Обратная связь</title>
</head>
<body>
<form method= «POST»>
Имя<br>
<input type= «text» name= «name2» size= «30»><br>
Телефон<br>
<input type= «text» name= «phonenum» size= «30»><br><br>
<input type= «text» name= «email» size= «30»><br>
Текст сообщения<br>
<TEXTAREA name= «message» wrap= «physical» cols= «50» rows= «10»>
</TEXTAREA><br>
<input type= «submit» name= «ok» value= «Отправить»>
<input type= «submit» name= «back» value= «На главную»>
<? php(empty ($_SESSION[‘login’]))
{‘<script>location.replace («/denwer/aut.php»); </script>’; exit;();
}
$act3 = $_POST[‘ok’];($act3 == «Отправить»)
{
$nam = $_POST[‘name2’];
$ph = $_POST[‘phonenum’];
Нужна помощь в написании отчета?
Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Поможем с характеристой и презентацией. Правки внесем бесплатно.
$email = $_POST[’email’];
$message = $_POST[‘message’];
$head = «Content-type: text/html; charset=windows-1251 rn»;
$head.= «From: rn»;
$theme = «Тема письма»;
$msg = «Имя: $nam<br/>: $email <br/>
Телефон: $ph <br/>
Сообщение: <br/>$message»;
$mail_to = «[email protected]»;($mail_to, $theme, $msg, $head);
echo «Сообщение отправлено»;
}
$act6 = $_POST[‘back’];
if ($act6== «На главную»)
{‘<script>location.replace («/denwer/start.php»);</script>’; exit;
Нужна помощь в написании отчета?
Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Поможем с характеристой и презентацией. Правки внесем бесплатно.
exit();
}
?>
</form>
</body>
</html>
About:
<? php_start();
?>
<html>
<head>
<title></title>
</head>
<body>
Нужна помощь в написании отчета?
Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Поможем с характеристой и презентацией. Правки внесем бесплатно.
<form method= «POST»>
<br>
<center>
Автор и разработчик сайта<br>
<p>
студент 273 группы факультета Бизнес-Информатики<br>
<p>
Орлов Н.
</center>
<? php(empty ($_SESSION[‘login’]))
{‘<script>location.replace («/denwer/aut.php»); </script>’; exit;
exit();
}
?>
Нужна помощь в написании отчета?
Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Поможем с характеристой и презентацией. Правки внесем бесплатно.
</form>
</body>
</html>