Создание сайта знакомств

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

	Федеральное государственное образовательное учреждение высшего профессионального образования «Чувашский государственный университет им. И.Н. Ульянова»

	Факультет информатики и вычислительной техники

	Кафедра «Информационно-вычислительных систем»

	Дисциплина «Базы данных»

	

	

	

	

	

	

	Пояснительная записка

	к курсовой работе

	

	

	

	

	

	Выполнил: студент ИВТ 12-04

		Константинов Д.С.

		Проверил: Буланкина Е.Ю.

	

	

	

	

	

	Чебоксары – 2006 г.

	
Содержание

	

	Задание.

	Анализ. Предметная область.

	1.1 Описание предметной области 

	1.2 Перечень и описание функций приложения обработки базы данных. 

	1.3 Перечень и описание сущностей и атрибутов базы данных.

	Проектирование. Нормализация базы данных. Схема данных.

	2.1 Пошаговое описание нормализации базы данных (методом ER-диаграмм).

	2.2 Схема данных.

	2.3 Перечень и описание таблиц и их полей (с указанием типов данных и ограничений) в сводной таблице. 

	Программная часть. Руководство программиста.

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

	Сопровождение. Руководство пользователя.

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

	Приложение 1. Исходный текст приложения. 

	
Задание

	

	Необходимо провести нормализацию предметной области «Сайт знакомств» и программно реализовать, использую СУБД MySQL, язык HTML, технологии PHP и ADO, на выбор скриптовые языки VBScript или JavaScript.

	
1. Анализ. Предметная область

	

	1.1 Описание предметной области

	

	Дано описание предметной области:

	Сайт знакомств

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

	

	1.2 Перечень и описание функций приложения обработки базы данных

	

	Описание функций базы данных

			Система должна обеспечивать поиск претендентов 

			Система должна поддерживать поиск сообщений

			Система должна поддрживать удаление сообщений

			Система должна поддерживать удаление пользователя 

			Система должна поддерживать изменение параметров пользователя

			Система должна обеспечивать регистрацию пользователя

	

	1.3 Перечень и описание сущностей и атрибутов базы данных

	

	Выделили следующие сущности:

			Пользователи-в ней находятся данные по пользователям

			Письма-в ней находятся данные переписки

			Фотографии- ссылки на фото пользователей 

		Перечень и описание всех атрибутов базы данных «Сайт знакомств»

	
Таблица 1

	№

	Имя атрибута

	Описание

	1.

	Ник

	Ник пользователя

	2.

	Пароль

	Пароль пользователя

	3.

	Мыло

	Эл. Ящик пользователя

	4.

	ДатаРег

	Дата регистрации

	5.

	ДатаРожд

	Дата рождения

	6.

	Глав

	Главная фотография

	7.

	КолПросм

	Кол-во просмотров анкеты пользователя

		8.

	ВремяЗаход

	Время последнего захода

	9.

	Муж

	Пол пользователя

	10.

	Рейтинг

	Рейтинг пользователя

	11

	Сообщен

	Тело сообщения

	12

	ОтКого

	От кого сообщение

	13

	КодФото

	Уникальный код фотографии

	14

	ДатаПослан

	Когда было послано сообщение 

	15

	ИмяФото

	Имя фотографии

	16

	КодПисьма

	Уникальный код письма

	17

	Кому

	Кому было послано сообщение

	18

	Прочит

	Прчитано илинет

	

	
2. Проектирование. Нормализация базы данных. Схема данных

		

		2.1 Пошаговое описание нормализации базы данных (методом ER-диаграмм)

	

	Определим сущности:

			Пользователи 

			Письма

			Фотографии

	Шаг 1. Каждый пользователь может имеет несколько писем. По этому со стороны пользователя модальность необязательно координальность много. Каждое письмо обязательно должно иметь двух пользователей. По этому со стороны переписки модальность обязательно координальность много.

	Итак, получим ER-диаграмму, представленную на рис. 1: 

	

	

	Письма

	КодПисьма

 

		

Пользователи

Nik

 

		

	

	Рис. 1

	

	Шаг 2. Каждый пользователь может имеет несколько фотографий. По этому со стороны пользователя модальность необязательно координальность много. Каждая фотография обязательно должно иметь только одного пользователя. По этому со стороны фотографии модальность обязательно координальность 1.

	Итак, получим ER-диаграмму, представленную на рис. 2: 

	


	

Пользователи

 Nik

 

	Фотографии

	КодФото

 

	

	

	

	Итак, получим ER-диаграмму, представленную на рис. 3: 

	

	Письма

	КодПисьма

 

		

Пользователи

 Nik

 Имеют

		

	

	

	 Принадлежат

	

	

Фотографии

 КодФото

 

	

	

	

	Подробное описание нормализации каждой связи.

	Шаг 1. Связь Имеют. Кардинальность связи многие ко многим. Требуются три отношения по одному для каждой сущности и одно для связи. Получим отношения:

	Пользователи (Ник, Пароль, Мыло, ДатаРег, ДатаРожд, КолПросм, ВремяЗаход, Муж, Рейтинг)

	Письма (КодПисьма, Сообщен, ОтКого, ДатаПослан, Кому )

	ПользоватПисьма(КодПисьма, Ник)

	Шаг 2. Связь Принадлежат. Кардинальность связи один ко многим и модальность со стороны М-связной сущности "обязательно". Требуются два отношения по одному для каждой сущности. При этом ключ сущности будет первичным ключом для соответствующего отношения, и ключ односвязной сущности должен быть добавлен как атрибут (внешний ключ) в отношение, отводимое для М-связной сущности.

	Получим отношения:

	Пользователи (Ник, Пароль, Мыло, ДатаРег, ДатаРожд, КолПросм, ВремяЗаход, Муж, Рейтинг)

	Фото(КодФото, Глав, ИмяФото,Ник)

		

		2.2 Схема данных

	

	После нормализации получили следующие отношения:

	Пользователи (Ник, Пароль, Мыло, ДатаРег, ДатаРожд, КолПросм, ВремяЗаход, Муж, Рейтинг)

	Письма (КодПисьма, Сообщен, ОтКого, ДатаПослан, Кому )

	ПользоватПисьма(КодПисьма, Ник)

	Фото(КодФото, Глав, ИмяФото,Ник)

	

		2.3 Перечень и описание таблиц и их полей (с указанием типов данных и ограничений) в сводной таблице

	

	Таблица 2. Сводная таблица атрибутов и отношений базы данных «Сайт знакомств» после нормализации методом ER-диаграмм

	Имя отношения (таблицы)

	Имя атрибута

	Имя поля

	Тип д-х

	Описание

	Пользователи (Polzovateli)

	Ник

	Nik

	tinitext

	Ник пользователя

	Пароль

	Parol

	tinitext

	Пароль пользователя

	Мыло

	Milo

	tinitext

	Эл. Ящик пользователя

	ДатаРожд

	DataRozhd

	date

	Дата рождения пользователя

	ДатаРег

	DataReg

	date

	Дата регистр. пользователя

	КолПросм

	KolProsm

	mediumint

	Кол-во просмотров анкеты пользователя

	ВремЗаход

	VremZahod

	datetime

	Время последнего захода пользователя

	Муж

	Muzh

	set

	Пол пользователя

	Рейтинг

	Reiting

	mediumint

	Рейтинг пользователя

	Письма(Soobshen)

	КодПисьма 

	KodPisma

	int

	Уникальный код письма

	ОтКого

	OtKogo

	tinytext

	Чье письмо

	ДатаПослан

	DataPoslan

	datetime

	Дата послания письма

	Сообщен

	Sobshen

	text

	Тело письма

	Прочит

	Prochit

	Set(1,0)

	Прочитано или нет

	Кому

	Komu

	tinytext

	Кому письмо

	Фотографии(Foto)

	КодФото

	KodFoto

	int

	Уникальный код фотографии

	Ник

	Nik

	tinytext

	Кому принадлежит фото

	ИмяФото

	ImaFoto

	tinytext

	Имя фотографии

	Глав

	Glav

	set

	Главная ли фотография

	ПользоватПисьма(PolzovatPisma)

	Ник

	Nik

	tinitext

	Ник пользователя

	КодПисьма

	KodPisma

	int

	Уникальный код письма

	

		
Программная часть. Руководство программиста

	

	Сайт состоит из 7 скриптов каждый из которых выполняет определенные функции. 

	INDEX –с него запускается сайт содержит проверку пароля и Ника и ссылки на другие страницы включая регистрацию.

	DOBAVFOTO-скрипт осуществляет добавление, удаление, и выбор главной фотографии т.е в нем осущиствлена вся работа с фотографиями

	POISK-скрипт ищет претендентов на переписку по запросу пользователя

	POSILKAPISEM-скрипт осуществляет отправку сообщений

	PROSMOTRANKET-скрипт осуществляет просмотр своей и чужой анкеты

	PROSMOTRSOBSHEN-скрипт осуществляет просмотр отправленных и принятых сообщений

	

	REGISTRACIYA-скрипт осуществляет регистрацию пользователей 

	
Тестирование. Результаты тестирования.

	Никаких сбоев при выполнении тестирования не обнаружены. Все работает исправно. 


Сопровождение. Руководство пользователя

	

	Незарегестрированым пользователям не обходимо зарегестрироваться для этого необходимо перейти по ссылке «зарегестрироваться». Для зарегестрированых пользователей нужно вести свой ник и пароль и переходить по ссылкам. 

	Ссылки: 

	Поиск-осуществляет поиск пользователей

	Просмотр анкеты- просмотр своей анкеты

	Просмотр сообщений- просмотр отправленных и принятых сообщений

	Отправка сообщений-отправка сообщений пользователям

	

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

		

		Колисниченко Д.Н. Самоучитель PHP 5. – Издание 2-е – СПб.:Наука и Техника, 2005.

		Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP 5 на примерах. – СПб.: БХВ – Петербург, 2005.

		Кузнецов С.Д. PHP 4.0. Руководство пользователя. – М.: Майор, 2001.

	
Приложение 1. Исходный текст приложения

	

	 <?

	include_once "PodkluchaemsyaKBaze.php"; 

	if(isset($_REQUEST['Ok']))

	{

	//======================Проверка на заполнение всех полей

	if(($_REQUEST['adres']!=="")&&($_REQUEST['NomProekt']!=="")&&($_REQUEST['Postroen']!==""))

	{

	$Adres=$_REQUEST['adres'];

	$NomProekt=$_REQUEST['NomProekt'];

	if($_REQUEST['Postroen']==='Да')

	{$Postroen=1;}

	if($_REQUEST['Postroen']==='Нет')

	{$Postroen=0;}

	//===========================проверка на наличие в базе

	$rez=mysql_query("SELECT * FROM Dom WHERE AdresDoma='".$Adres."'");

	if(mysql_num_rows($rez))

	{echo "<br><h3>Дом уже находиться в базе</h3><br>";}

	else

	{

	//==========================Вносим в базу

	mysql_query("INSERT INTO Dom SET AdresDoma='".$Adres."', NomerProekta='".$NomProekt."', Postroika='".$Postroen."'") or die(mysql_error());

	echo "<br><h3 color=\"black\">Дом добавлен</h3>";

	}

	}

	else 

	{

	echo " <br><h3>Вы заполнили не все поля попробуйте еще</h3>";

	}

	}

	include_once "PodkluchaemsyaKBaze.php"; 

	//=====================Выводим адреса домов 

	$rez=mysql_query("SELECT AdresDoma FROM Dom");

	for($data=array();$row=mysql_fetch_assoc($rez);$data[]=$row)

	{

	echo "<option value=\"".$row['AdresDoma']."\">".$row['AdresDoma']."</option>";

	}

	?>

	 </select>

	 </span></label>

	 <p class="стиль3">

	 <label>Номер квартиры

	 <input name="NomerKv" type="text" id="NomerKv">

	 </label></p>

	 <p class="стиль3">

	 <label>Площадь

	 <input name="Ploshad" type="text" id="Ploshad">

	 </label>

	 </p>

	 <p class="стиль3">

	 <label>Количество комнат

	 <input name="KolKomnat" type="text" id="KolKomnat">

	 </label>

	 </p>

	 <p class="стиль3">

	 <label>Класс квартиры

	 <input name="Klas" type="text" id="Klas">

	 </label>

	 </p>

	 <p>

	 <span class="стиль3">

	 <label>Этаж

	 <input name="etazh" type="text" id="etazh">

	 </label>

	 </span>

	 <label> </label>

	 </p>

	 <p>

	 <label>

	 <input name="Ok" type="submit" id="Ok" value="Сохранить">

	 </label>

	 </p>

	</form>

	<p class="стиль2">&nbsp;</p>

	<?

	if(isset($_REQUEST['Ok']))

	{

	//=====================Проверка на заполнение всех полей

	if(($_REQUEST['Adres']!=="")&&($_REQUEST['NomerKv']!=="")&&($_REQUEST['KolKomnat']!=="")&&($_REQUEST['Klas']!=="")&&($_REQUEST['etazh']!==""))

	{

	$Adres=$_REQUEST['Adres'];

	$NomKv=$_REQUEST['NomerKv'];

	$KolKomnat=$_REQUEST['KolKomnat'];

	$Klas=$_REQUEST['Klas'];

	$Etazh=$_REQUEST['etazh'];

	$Ploshad=$_REQUEST['Ploshad'];

	$rez=mysql_query("SELECT KodDoma FROM Dom WHERE AdresDoma='".$Adres."'");

	for($data=array();$row=mysql_fetch_assoc($rez);$data[]=$row)

	{

	 $KodDoma=$row['KodDoma'];

	}

	//=====================Проверка на наличие квартиры в базе

	$rez=mysql_query("SELECT * FROM Kvartira WHERE KodDoma='".$KodDoma."' AND NomerKvartiri='".$NomKv."'");

	if(mysql_num_rows($rez))

	{echo "<br><h3>Квартира уже находиться в базе</h3><br>";}

	else

	{

	//=============================Вносим в базу

	mysql_query("INSERT INTO Kvartira SET KodDoma='".$KodDoma."', NomerKvartiri='".$NomKv."', Metrazh='".$Ploshad."', KolichestvoKomnat='".$KolKomnat."', KlasKvartiri='".$Klas."', Etazh='".$Etazh."'") or die(mysql_error());

	echo "<br><h3 color=\"black\">Квартира добавленa</h3>";

	}

	}

	else 

	{

	echo " <br><h3>Вы заполнили не все поля попробуйте еще</h3>";

	}

	}

	include_once "PodkluchaemsyaKBaze.php"; 

	if(isset($_REQUEST['Ok']))

	{

	//=====================Проверка на заполнение всех полей

	if(($_REQUEST['FIO']!=="")&&($_REQUEST['Adres']!=="")&&($_REQUEST['Dolzhnost']!=="")&&($_REQUEST['Brigada']!==""))

	{

	$Adres=$_REQUEST['Adres'];

	$FIO=$_REQUEST['FIO'];

	$Dolzhnost=$_REQUEST['Dolzhnost'];

	$Brigada=$_REQUEST['Brigada'];

	//=====================Проверка на наличие рабочего в базе

	$rez=mysql_query("SELECT * FROM Rabochiy WHERE FIORabochego='".$FIO."' AND Adres='".$Adres."'");

	if(mysql_num_rows($rez))

	{echo "<br><h3>Рабочий уже находиться в базе</h3><br>";}

	else

	{

	//=============================Вносим в базу

	mysql_query("INSERT INTO Rabochiy SET FIORabochego='".$FIO."', Adres='".$Adres."', Dolzhnost='".$Dolzhnost."', Brigada='".$Brigada."'") or die(mysql_error());

	echo "<br><h3 color=\"black\">Рабочий добавлен</h3>";

	}

	}

	else 

	{

	echo " <br><h3>Вы заполнили не все поля попробуйте еще</h3>";

	}

	}

	include_once "PodkluchaemsyaKBaze.php";

	//==================Выводим адреса домов 

	$rez=mysql_query("SELECT AdresDoma FROM Dom");

	for($data=array();$row=mysql_fetch_assoc($rez);$data[]=$row)

	{

	echo "<option value=\"".$row['AdresDoma']."\">".$row['AdresDoma']."</option>";

	}

	?>

	 </select>

	 </span></div>

	 </label>

	 <p align="left" class="стиль3">

	 <label>Номер квартиры

	 <input name="NomerKv" type="text" id="NomerKv" />

	 </label>

	 </p>

	 <p align="left" class="стиль3">

	 <label>Площадь

	 <input name="Ploshad" type="text" id="Ploshad" />

	 </label>

	 </p>

	 <p align="left" class="стиль3">

	 <label>Количество комнат

	 <input name="KolKomnat" type="text" id="KolKomnat" />

	 </label>

	 </p>

	 <p align="left" class="стиль3">

	 <label>Класс квартиры

	 <input name="Klas" type="text" id="Klas" />

	 </label>

	 </p>

	 <p align="left"> <span class="стиль3">

	 <label>Этаж

	 <input name="etazh" type="text" id="etazh" />

	 </label>

	 </span>

	 <label> </label>

	 </p>

	 <p align="left">

	 <label>

	 <input name="Ok" type="submit" id="Ok" value="Найти" />

	 </label>

	 </p>

	 </form>

	 <h2>&nbsp;</h2>

	</div>

	<?

	if(isset($_REQUEST['Ok']))

	{

	$Adres=$_REQUEST['Adres'];

	$NomKv=$_REQUEST['NomerKv'];

	$KolKomnat=$_REQUEST['KolKomnat'];

	$Klas=$_REQUEST['Klas'];

	$Etazh=$_REQUEST['etazh'];

	$Ploshad=$_REQUEST['Ploshad'];

	//=====================Создание запроса

	$zap="SELECT * FROM Kvartira WHERE ";

	$hren=0;

	if($_REQUEST['NomerKv']!=="")

	{$zap=$zap."NomerKvartiri='".$NomKv."'"; $hren=1;}

	if($_REQUEST['KolKomnat']!=="")

	{

	if($hren===1)

	{$zap=$zap." AND ";}

	$zap=$zap." KolichestvoKomnat='".$KolKomnat."'";

	$hren=1;

	}

	if($_REQUEST['Klas']!=="")

	{

	if($hren===1)

	{$zap=$zap." AND ";}

	$zap=$zap." KlasKvartiri='".$Klas."'";

	$hren=1;

	}

	if($_REQUEST['etazh']!=="")

	{

	if($hren===1)

	{$zap=$zap." AND ";}

	$zap=$zap." Etazh='".$Etazh."'";

	$hren=1;

	}

	if($_REQUEST['Ploshad']!=="")

	{

	if($hren===1)

	{$zap=$zap." AND ";}

	$zap=$zap." Ploshad='".$Ploshad."'";

	$hren=1;

	}

	if($_REQUEST['Adres']!=="")

	{

	//==========================Ищем код дома по его адресу

	$rez=mysql_query("SELECT KodDoma FROM Dom WHERE AdresDoma='".$Adres."'");

	for($data=array();$row=mysql_fetch_assoc($rez);$data[]=$row)

	{

	 $KodDoma=$row['KodDoma'];

	}

	if($hren===1)

	{$zap=$zap." AND ";}

	$zap=$zap." KodDoma='".$KodDoma."'";

	}

	//=======================Подаем созданый запрос

	$rez=mysql_query($zap);

	if(!mysql_num_rows($rez))

	{

	echo "<br><h3>По запросу ничего не найдено</h3><br>";

	}

	else 

	{

	//=======================Вывод результатов поиска в таблице

	echo "<table cellpadding=\"2\" border=\"0\" cellspacing=\"0\">";

	echo "<tr><th class=\"стиль4\">Адрес</th><th class=\"стиль4\">Квартира</th><th class=\"стиль4\">Площадь</th><th class=\"стиль4\">Кол-во комнат</th><th class=\"стиль4\">Класс квартиры</th><th class=\"стиль4\">Этаж</th>";

	for($data=array();$row=mysql_fetch_assoc($rez);$data[]=$row)

	{

	//==================================Ищем адрес дома по его коду

	$rezult=mysql_query("SELECT AdresDoma FROM Dom WHERE KodDoma='".$row['KodDoma']."'");

	for($datas=array();$rows=mysql_fetch_assoc($rezult);$data[]=$rows)

	{

	 $AdresDoma=$rows['AdresDoma'];

	}

	echo "<tr><th>".$AdresDoma."</th><th>".$row['NomerKvartiri']."</th><th>".$row['Metrazh']."</th><th>".$row['KolichestvoKomnat']."</th><th>".$row['KlasKvartiri']."</th><th>".$row['Etazh']."</th>";

	}

	echo "</table>";

	}

	}

	

	include_once "PodkluchaemsyaKBaze.php"; 

	echo "<form id=\"form1\" name=\"form1\" method=\"post\" action=\"OtkazatsyaOtZayavki.php\">";

	echo "<table cellpadding=\"2\" border=\"0\" cellspacing=\"0\">";

	echo "<tr><th class=\"стиль4\">Адрес</th><th class=\"стиль4\">Квартира</th><th class=\"стиль4\">Площадь</th><th class=\"стиль4\">Кол-во комнат</th><th class=\"стиль4\">Класс квартиры</th><th class=\"стиль4\">Этаж</th><th class=\"стиль4\">Владелец</th><th></th>";

	$rez=mysql_query("SELECT * FROM Pokupka");

	for($data=array();$row=mysql_fetch_assoc($rez);$data[]=$row)

	{

	$KodKlienta=$row['KodKlienta'];

	$KodKvartiri=$row['KodKvartiri'];

	$rez1=mysql_query("SELECT * FROM Klient WHERE KodKlienta='".$KodKlienta."'");

	for($data1=array();$row1=mysql_fetch_assoc($rez1);$data1[]=$row1)

	{

	$FIO=$row1['FIO'];

	}

	$rez2=mysql_query("SELECT * FROM Kvartira WHERE KodKvartiri='".$KodKvartiri."'");

	for($data2=array();$row2=mysql_fetch_assoc($rez2);$data2[]=$row2)

	{

	$rezult=mysql_query("SELECT AdresDoma FROM Dom WHERE KodDoma='".$row2['KodDoma']."'");

	for($datas=array();$rows=mysql_fetch_assoc($rezult);$data[]=$rows)

	{

	$AdresDoma=$rows['AdresDoma'];

	}

	echo "<tr><th>".$AdresDoma."</th><th>".$row2['NomerKvartiri']."</th><th>".$row2['Metrazh']."</th><th>".$row2['KolichestvoKomnat']."</th><th>".$row2['KlasKvartiri']."</th><th>".$row2['Etazh']."</th><th>".$FIO."</th><th><input type=checkbox name=ima[".$row['KodKvartiri']."] value=\"".$row['KodKlienta']."\" </th>";

	}

	}

	echo " </table><input name=\"Ok\" type=\"submit\" id=\"Ok\" value=\"Отказаться\" /> </form>";

	if(isset($_REQUEST['Ok']))

	{

	$data=array();

	$data=$_REQUEST['ima'];

	foreach ($data as $v=>$k)

	{

	mysql_query("DELETE FROM Pokupka WHERE KodKlienta='".$v."' AND KodKvartiri='".$k."'");

	echo "<br><h3> Удалили</h3>";

	}

	}

	//------------Начало открытии базы--------------

	$user="root";

	$pass="";

	$db="Oleg";

	mysql_connect("Oleg",$user,$pass)

	 or die("Could not connect: ".mysql_error());

	mysql_select_db($db)

	 or die("Could not select database: ".mysql_error()); 

	//-----------Конец открытию базы-------------------- 

	 //===========================Здесь пишутся(в браузере) все рабочии

	 include_once "PodkluchaemsyaKBaze.php"; 

	 $rez=mysql_query("SELECT FIORabochego FROM Rabochiy");

	for($data=array();$row=mysql_fetch_assoc($rez);$data[]=$row)

	{

	echo "<option value=\"".$row['FIORabochego']."\">".$row['FIORabochego']."</option>";

	}

	?>

	 </select>

	 </label>

	 <p>

	 <label>Квартира

	 <select name="Kvartira" id="Kvartira">

	<?

	//========================Здесь пишутся(в браузере) все адреса домов и квартир 

	$rez=mysql_query("SELECT AdresDoma, NomerKvartiri FROM Dom D ,Kvartira K WHERE D.KodDoma=K.KodDoma");

	for($data=array();$row=mysql_fetch_assoc($rez);$data[]=$row)

	{

	echo "<option value=\"".$row['AdresDoma']."@".$row['NomerKvartiri']."\">".$row['AdresDoma']."_".$row['NomerKvartiri']."</option>";

	}

	?>

	 </select>

	 </label>

	 </p>

	 <p>

	 <label>

	 <input name="Ok" type="submit" id="Ok" value="Сохранить">

	 </label>

	 </p>

	</form>

	<?

	if(isset($_REQUEST['Ok']))

	{

	$Rabochiy=$_REQUEST['Rabochiy'];

	$Adres=$_REQUEST['Kvartira'];

	$massiv=array();

	//===============вычисляет регулярное выражение разделяет улицу и номер дома от номера квартиры

	preg_match('/([a-z]+[\D][0-9.]+)@([a-z0-9.]+)/is',$Adres,$massiv);

	//======================================Находим код дома

	$rez=mysql_query("SELECT KodDoma FROM Dom WHERE AdresDoma='".$massiv[1]."'");

	for($data=array();$row=mysql_fetch_assoc($rez);$data[]=$row)

	{

	$KodDoma=$row['KodDoma'];

	}

	//=======================================По коду дома на ходим код квартиры

	$rez=mysql_query("SELECT KodKvartiri FROM Kvartira WHERE KodDoma='".$KodDoma."' AND NomerKvartiri='".$massiv[2]."'");

	for($data=array();$row=mysql_fetch_assoc($rez);$data[]=$row)

	{

	$KodKvartiri=$row['KodKvartiri'];

	}

	//=======================================Находим код рабочего

	$rez=mysql_query("SELECT KodRabochego FROM Rabochiy WHERE FIORabochego='".$Rabochiy."'");

	for($data=array();$row=mysql_fetch_assoc($rez);$data[]=$row)

	{

	$KodRabochego=$row['KodRabochego'];

	}

	//===================================Закрепляем рабочего за квартирой

	mysql_query("INSERT INTO Stoyka SET KodRabochego='".$KodRabochego."', KodKvartiri='".$KodKvartiri."'");

	echo "<br><h3 color=\"black\">Рабочий закреплен</h3>";

	}

	include_once "PodkluchaemsyaKBaze.php"; 

	//=======================Выводим адреса домов

	$rez=mysql_query("SELECT AdresDoma FROM Dom");

	for($data=array();$row=mysql_fetch_assoc($rez);$data[]=$row)

	{

	echo "<option value=\"".$row['AdresDoma']."\">".$row['AdresDoma']."</option>";

	}

	?>

	 </select>

	 <br />

	 <br />

	 Квартира

	 <input name="Kvartira" type="text" id="Kvartira" />

	 </label>

	 <p>

	 <label>

	 <input name="Ok" type="submit" id="Ok" value="Добавить" />

	 </label>

	 </p>

	</form>

	<p>&nbsp;</p>

	<?

	include_once "PodkluchaemsyaKBaze.php"; 

	if(isset($_REQUEST['Ok']))

	{

	//======================Проверка на заполнение всех полей

	if(($_REQUEST['Adres']!=="")&&($_REQUEST['Kvartira']!=="")&&($_REQUEST['FIO']!=="")&&($_REQUEST['AdrKlient']!==""))

	{

	$Adres=$_REQUEST['Adres'];

	$Kvartira=$_REQUEST['Kvartira'];

	$FIO=$_REQUEST['FIO'];

	$AdrKlient=$_REQUEST['AdrKlient'];

	//=============================Ищем код дома по его адресу

	$rez=mysql_query("SELECT KodDoma FROM Dom WHERE AdresDoma='".$Adres."'");

	for($data=array();$row=mysql_fetch_assoc($rez);$data[]=$row)

	{

	 $KodDoma=$row['KodDoma'];

	}

	//==========================Проверяем а есть ли такая квартира

	$rez=mysql_query("SELECT KodKvartiri FROM Kvartira WHERE KodDoma='".$KodDoma."' AND NomerKvartiri='".$Kvartira."'");

	if(!mysql_num_rows($rez))

	{

	echo "<br><h3>Квартира не существует ведите данные правильно</h3>";

	}

	else

	{

	//===========================Ищем код квартиры по адресу и номеру квартиры

	$rez=mysql_query("SELECT KodKvartiri FROM Kvartira WHERE KodDoma='".$KodDoma."' AND NomerKvartiri='".$Kvartira."'");

	for($data=array();$row=mysql_fetch_assoc($rez);$data[]=$row)

	{

	$KodKvartiri=$row['KodKvartiri'];

	}

	//==========================Проверка есть ли в нашей базе этот клиент если нет добовляем его

	$rez=mysql_query("SELECT KodKlienta FROM Klient WHERE FIO='".$FIO."' AND AdresKlienta='".$AdrKlient."'");

	if(!mysql_num_rows($rez))

	{

	mysql_query("INSERT INTO Klient SET FIO='".$FIO."', AdresKlienta='".$AdrKlient."'");

	}

	//==============================Ищем код клиента для дальнейшего ввода в базу покупка

	$rez=mysql_query("SELECT KodKlienta FROM Klient WHERE FIO='".$FIO."' AND AdresKlienta='".$AdrKlient."'");

	for($data=array();$row=mysql_fetch_assoc($rez);$data[]=$row)

	{

	$KodKlienta=$row['KodKlienta'];

	}

	//=========================Проверяем есть ли заявки на эту квартиру 

	$rez=mysql_query("SELECT KodKlienta FROM Pokupka WHERE KodKvartiri='".$KodKvartiri."'");

	if(mysql_num_rows($rez))

	{

	echo "<br><h3>Квартира уже зОбита</h3>";

	}

	//=============================Если заявок нет вносим этого клиента в базу Покупка 

	else

	{

	mysql_query("INSERT INTO Pokupka SET KodKlienta='".$KodKlienta."', KodKvartiri='".$KodKvartiri."'");

	echo "<br><h3>Заявка внесена в базу</h3>";

	}

	}

	}

	else

	{

	echo "<br><h3>Заполните все поля</h3>";

	}

	}

	?>



1