Проектирование информационных систем на базе MySQL и Internet

Министерство образования Российской Федерации





Нижегородский Государственный Технический Университет





Нижегородский Вечерний Факультет





Кафедра: Компьютерные технологии в проектировании и производстве







Курсовая работа



по дисциплине:



«Проектирование информационных систем»



Проектирование информационных систем



На базе MySQL и Internet













Выполнили: 

Греков В.В.

Певченко Г.П.

группа 99-ИКУ



Проверил:

Штанюк А.А.







г.Кстово



2003





Содержание





1 Задание												

2 Анализ задания										

3 Проектирование базы данных							

4 Разработка CGI-программ и HTML-документов			

5 Схема размещения информации на Internet узле		

6 Контрольный пример									

7 Выводы												

8 Список литературы									









Задание



Разработать информационную систему для реализации конкурсного отбора кадров на базе программного обеспечения MySQL и Internet.









Анализ задания



Разрабатываемая система позволяет предприятию через Internet объявить конкурс на имеющиеся у нее вакантные должности, собирать и хранить сведения об участниках конкурса в виде заполняемых ими анкет.



Администратор имеет возможность вносить в базу данных новые вакансии, удалять занятые, а также редактировать список присланных анкет, отбирая наиболее перспективные для деятельности предприятия.









Проектирование базы данных



Реализация базы данных с помощью MySQL.



После запуска MySQL в командной строке создаем базу данных Konti: 

C:\mysql\bin\mysqladmin create Konti



После этого в созданной базе создаем таблицы t1 и t2:



Создание таблицы t1:



use Konti

create table t1(prof varchar(30) not null primary key, knkrs int not null, ed varchar(30) not null, cpc varchar (30) not null, crok int not null);

	

		Поле “prof” - является ключевым и содержит наименование вакансии.

		Поле “knkrs” - содержит количество анкет, заявленных на данную вакансию.

		Поле “ed” - содержит сведения о необходимом образовании претендента на данную вакансию.

		  Поле “cpc” - содержит сведения о необходимой специализации претендента на данную вакансию.

		  Поле “crok” - содержит сведения о необходимом опыте работы претендента по своей специализации.

	

	Создание таблицы t2:

	

	create table t2(fio varchar(30) not null primary key, eda varchar(30) not null, cpca varchar(30) not null, croka int not null, adress varchar(60) not null, vak varchar(30) not null);

	

	поле “fio” (ключевое поле) – фамилия имя и отчество претендента;

	поле “eda” – образование претендента;

	поле “cpca” – специальность претендента;

	поле “croka” – срок работы претендента по специальности;

	поле “adress” – адрес претендента;

	поле “vak” – выбранная вакансия претендента;

	

	

	

	

	Разработка CGI-программ и HTML-документов

	

	Файл Kontinental-HH.htm - главная страница.

	Содержит две кнопки:

			"Просмотр вакансий" – запускает скрипт list.cgi и предназначена для пользователя информационной системы - предоставляет ему возможность ознакомиться со списком вакансий на предприятии, узнать текущий конкурс на нее и заполнить анкету;

			"База данных” (пароль) – запускает скрипт BDvakans.cgi и предназначена для администратора - предоставляет ему возможность вносить в базу данных новые вакансии, удалять занятые, а также редактировать список присланных анкет, отбирая наиболее перспективные для деятельности предприятия.

		

	Kontinental-HH.htm 

	<html>

	<head><title>Континенталь-НН</title></head>

	<body bgcolor="#faf1d8">

	<center><h1><font color="#800000">ОАО "Континенталь-НН" &reg</font></h1></center>

	<p ALIGN="center"><font size="5"><strong><font color="#800000">Отдел кадров</font></strong></font></p>

	<p ALIGN="center"><font size="2"><strong>ПРОФЕССИОНАЛЬНЫЙ ПОДХОД К ЧЕЛОВЕЧЕСКИМ РЕСУРСАМ</font></strong></p>

	<table border="0">

	<tr><td><blockquote class="text">

	Сегодняшний день и перспективные задачи, стоящие перед организацией, требуют от её сотрудников новых и современных решений. Администрация предприятия проводит целенаправленную работу по привлечению в наши ряды высокопрофессиональных специалистов по всем направлениям деятельности.<br>

	Если Вы, ознакомившись со списком вакансий, увидели для себя возможности к самореализации, наша кадровая служба с интересом ознакомится с Вашим резюме.<br>

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

	</blockquote>

	</td></tr>

	</table> 

	<form action="http://myserver/cgi-bin/list.bat">

	<center><input type="submit" value="Просмотр вакансий"></center>

	</form>

	<br>

	<form action="http://myserver/cgi-bin/BDvakans.bat" method="post">

	<center><input type="submit" value="База данных">

	<input type="password" name="111" ></center>

	<center>Введите пароль для доступа <br><font size="2">(Временно пароль не используется)</font></center>

	</form>

	</body>

	</html>

	

	

	Файл list.cgi – исполняемая программа.

	Выводит список вакансий и конкурс на них на основе данных таблицы t1. Имеет 1 кнопку:

	- “Заполнить анкету" – запускает скрипт anketa.cgi и передает в него данные о выбранной вакансии.

	

	list.cgi

	

	use CGI qw(:standard);

	 use DBI;

	 print header();

	 print start_html("Список Вакансий для пользователя");

	 print qq{<body bgcolor="#faf1d8">};

	 print "<center><h1>Перечень вакансий</h1></center>";

	 print "<center>Выберите вакансию и заполните анкету</center>";

	 print "<br>";

	

	 $dbh=DBI->connect("dbi:mysql:konti");

	 $sth=$dbh->prepare("SELECT * FROM t1;");

	 $rows=$sth->execute();

	 print "<form action=\"http://myserver/cgi-bin/anketa.bat\">";

	 print "<center><table border=1>";

	 print qq{<tr ALIGN="center"><th>&nbsp№&nbsp</th>

				     <th>Вакансия</th><th>&nbspКонкурс&nbsp<br>на место</th>

				     <th>Ваш<br>выбор</th></font></tr>};

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

	 {

	  ($bakans,$knkrs,$ed,$Cpc,$Crok)=$sth->fetchrow_array;

	  $i++;

	  print "<tr>

		<td ALIGN=\"center\">$i</td>";

	  $i--;

	  print"<td>$bakans</td>

		<td><center>$knkrs</center></td>

		<TD><center><INPUT type=\"radio\" name=\"vibor\" value=\"vib$i\"></center></TD>

		</tr>";

	 }

	 $sth->finish();

	 $dbh->disconnect();

	 print"</table></center>";

	 print "<br>";

	 print "<center><INPUT type=\"submit\" value=\"Заполнить анкету\"></center\>";

	 print "<br>";

	 print "<center>Анкеты претендентов будут рассмотрены 25 января 2003г.</center>";

	 print "</FORM>";

	

	print end_html();

	

	

	

	Файл anketa.cgi – исполняемая программа.

	Выводит перечень основных требований к кандидату на вакансию на основе данных таблицы t1 и предлагает претенденту заполнить анкетные данные о себе.

	Имеет 2 кнопки:

			“Отправить" – запускает скрипт itog.cgi и передает в него анкетные данные претендента;

			"Очистить форму" – стирает из формы ошибочно введенные анкетные данные.

	

	anketa.cgi

	

	use CGI qw(:standard);

	use DBI;

	print header();

	print start_html("Анкета");

	print qq{<body bgcolor="#faf1d8">};

	my $pas=param("vibor");

	 $var=$pas;

	 $var=~ s/\D+//;

	if ($pas eq "")  {print qq{<p ALIGN="center"><font size="5"><strong><font color="#800000">

			  <br>&nbspВы забыли выбрать вакансию!</font></strong></font></p>};

	 print "<br>";

	 print "<center><table border=0>";

	 print "<tr><td><FORM action=\"http://myserver/cgi-bin/list.bat\">";

	 print "<center><INPUT type=\"submit\" value=\"Назад\"></center\>"; 

	 print "</FORM></td>";

	 print "<td><FORM action=\"http://myserver/cgi-bin/Konti.bat\">";

	 print "<center><INPUT type=\"submit\" value=\"На главную\"></center\>";

	 print "</FORM></td></tr>";

	 print "</table></center>";

			  goto quit;

			  }

	 $dbh=DBI->connect("dbi:mysql:konti");

	 $sth=$dbh->prepare("SELECT * FROM t1;");

	 $rows=$sth->execute();

	

	print "<center><h1>Заполните анкетные данные</h1></center>";

	print qq{<p ALIGN="center"><font size="5">};

	print "<center><u>Основные требования к кандидату</u></center>";

	for($i=0;$i<$var+1;$i++)

	{

	 ($bakans,$knkrs,$ed,$Cpc,$Crok)=$sth->fetchrow_array;

	 if ($i==$var)

	 {

	print "<center><table>";

	print "<TR><TD>Образование</TD><TD>- $ed</TD></TR>";

	print "<TR><TD>Специальность</TD><TD>- $Cpc</TD></TR>";

	print "<TR><TD>Срок работы по специальности, лет&nbsp</TD><TD>- $Crok</TD></TR>";

	print "</center></table>";

	 }

	}

	print "</font></p>";

	

	 $sth->finish();

	 $dbh->disconnect();

	

	print "<form action=\"http://myserver/cgi-bin/itog.bat\">";

	print "<center><table>";

	print "<TR><TD>Фамилия имя отчество</TD><TD><input name=\"fio\"></TD></TR>";

	print "<TR><TD>Образование</TD>

		   <TD><SELECT name=\"ed\">

	           <OPTION value=\"высшее0\" selected>высшее

		   <OPTION value=\"нез/высшее1\">нез/высшее

	           <OPTION value=\"ср. техническое2\">ср. техническое

	           <OPTION value=\"ср. специальное3\">ср. специальное

	           <OPTION value=\"среднее4\">среднее

	           </SELECT>

		   </TD></TR>";

	print "<TR><TD>Специальность</TD><TD><input name=\"cpc\"></TD></TR>";

	print "<TR><TD>Стаж работы по специальности, лет&nbsp</TD><TD><input name=\"crok\"></TD></TR>";

	print "<TR><TD>Адрес</TD><TD><input name=\"adress\"></TD></TR>";

	print "<TR><TD><BR></TD></TR>";

	

	print qq{<INPUT type="hidden" name="vib" value=$pas>};

	

	print "<TR><TD><input type=\"submit\" value=\"Отправить\"></TD>

		   <TD><INPUT type=\"reset\" value=\"Очистить форму\"></TD></TR>";

	print "</table></center>";

	print "</form>";

	

	quit:

	print end_html();

	

	

	

	Файл itog.cgi – исполняемая программа.

	Проверяет введенные анкетные данные на соответствие основным требованиям к претенденту, при выполнении которых заносит их в таблицу t2 и увеличивает значение конкурса на выбранную вакансию в таблице t1, в противном случае выводит мотивированное сообщение об отказе в принятии анкеты.

	Имеет 2 кнопки:

			“Назад" - запускает скрипт itog.cgi;

			"На главную" - запускает скрипт Konti.cgi.

	

	itog.cgi

	

	use CGI qw(:standard);

	use DBI;

	print header();

	print start_html("Добавление Анкеты");

	print qq{<body bgcolor="#faf1d8">};

	 $dbh=DBI->connect("dbi:mysql:konti");

	 $sth=$dbh->prepare("SELECT * FROM t1;");

	 $rows=$sth->execute();

	 $fio=param('fio');

	 $eda=param('ed');

	 $eda0=$eda;

	 $eda=~ s/\d+//;

	 $eda0=~ s/\D+//;

	 $cpca=param('cpc');

	 $cpca=~ tr/А-Я/а-я/;

	 $croka=param('crok');

	 $adress=param('adress');

	 $var=param('vib');

	 $var=~ s/\D+//;

	 print "<br>";

	print qq{<p ALIGN="center"><font size="4"><strong><font color="#800000">};

	for($i=0;$i<$var+1;$i++)

	{

	 ($bakans,$knkrs,$ed,$Cpc,$Crok)=$sth->fetchrow_array;

	 if ($i==$var)

	 {

	 if ($ed="высшее") {$ed0=0;} elsif ($ed="нез/высшее") {$ed0=1;} elsif ($ed="ср. техническое")  {$ed0=2;} elsif ($ed="ср. специальное") {$ed0=3;} else {$ed0=4;}

	 if ($eda0 > $ed0) {$fe=1;} else {$fe=0;}

	 if ($cpca ne $Cpc) {$fcp=1;} else {$fcp=0;}

	 if ($croka < $Crok) {$fcr=1;} else {$fcr=0;}

	 if ($fe==1 or $fcp==1 or $fcr==1) {print qq{Извините, $fio, но Ваша анкета не принята к рассмотрению из-за несоответствия  указанных в ней данных требованиям к кандидату};}

	 else {	 

		 my $sth=$dbh->prepare("SELECT * FROM t2;");

		 my $rows=$sth->execute();

		 $flag=0;

		 for($j=0;$j<$rows;$j++)

		  {

	  ($fio2,$eda2,$cpca2,$croka2,$adress2,$vak2)=$sth->fetchrow_array;

		    if ($fio2 eq $fio)

		    {   

			$flag=1;

			$knkrs=$knkrs-1;

			$sql="update t1 set knkrs='$knkrs' where prof='$bakans';";

	 		$dbh->do($sql);

		    }

		  }

		 $knkrs=$knkrs+1;

	 	 $sql="update t1 set knkrs='$knkrs' where prof='$bakans';";

	 	 $dbh->do($sql);

		 $sth->finish();

	    if ($flag==0)   {

	    print qq{Уважаемый, $fio, Ваша анкета принята для участия в конкурсе.<br><br>Желаем успеха!};

	    $sql="INSERT INTO t2(fio,eda,cpca,croka,adress,vak)values('$fio','$eda','$cpca','$croka','$adress','$bakans')";

	    $dbh->do($sql); 

			    }

	    else {

	print qq{Уважаемый, $fio, в базе данных уже имеется анкета на Ваше имя, фамилию, отчество. Если Вы хотите заполнить новую анкету - измените свои ФИО дополнив, например, цифровым символом ($fio-2).<br><br>};

		 }

	      }

	 }

	}

	 print qq{</font></strong></font></p>};

	

	 $sth->finish();

	 $dbh->disconnect();

	 print "<br>";

	

	 print "<center><table border=0>";

	 print "<tr><td><FORM action=\"http://myserver/cgi-bin/anketa.bat\">";

	 print qq{<INPUT type="hidden" name="vibor" value="vibor$var">};

	 print "<center><INPUT type=\"submit\" value=\"Назад\"></center\>"; 

	 print "</FORM></td>";

	

	 print "<td><FORM action=\"http://myserver/cgi-bin/Konti.bat\">";

	 print "<center><INPUT type=\"submit\" value=\"На главную\"></center\>";

	 print "</FORM></td></tr>";

	 print "</table></center>";

	

	print end_html();

	

	

	Файл BDvakans.cgi – исполняемая программа.

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

	Имеет 3 кнопки:

			“Добавить" - запускает скрипт Addvakan.cgi;

			“Удалить" - запускает скрипт vakdel.cgi;

			“На главную" - запускает скрипт Konti.cgi.;

	и 2 ссылки:

			“Список вакансий" - запускает скрипт BDvakans.cgi;

			“Список анкет" - запускает скрипт BDankets.cgi.

	

	BDvakans.cgi

	

	use CGI qw(:standard);

	 use DBI;

	 print header();

	 print start_html("Список Вакансий");

	 print qq{<body bgcolor="#faf1d8">};

	 my $pass=param("111");

	 if (111)

	{

	 print "<center><h1>База данных</h1></center>";

	 print "<center>";

	 print qq{<A href="http://myserver/cgi-bin/BDvakans.bat"><font size="5">Список вакансий</A>};

	 print "&nbsp &nbsp &nbsp &nbsp";

	 print qq{<A href="http://myserver/cgi-bin/BDankets.bat">Список анкет</font></A>};

	 print "</center>";

	

	 print "<FORM action=\"http://myserver/cgi-bin/Addvakan.bat\">";

	 print "<center><table border=0>";

	 print qq{<tr><td><p ALIGN="center"><font size="5"><strong><font color="#800000">Список вакансий &nbsp&nbsp&nbsp</font></strong></font></td>};

	 print "<td><center><INPUT type=\"submit\" value=\"Добавить\"></center\></td></tr></p>";

	 print "</table></center>";

	 print "</FORM>";

	

	 $dbh=DBI->connect("dbi:mysql:konti");

	 $sth=$dbh->prepare("SELECT * FROM t1;");

	 $rows=$sth->execute();

	 print "<form action=\"http://myserver/cgi-bin/vakdel.bat\">";

	 print "<center><table border=1>";

	 print qq{<tr ALIGN="center"><th>&nbsp№&nbsp</th>

				     <th>Вакансия</th>

				     <th>Пометить<br>на удаление</th></font></tr>};

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

	 {

	  ($bakans,$knkrs,$ed,$Cpc,$Crok)=$sth->fetchrow_array;

	  $i++;

	  print"<tr>

		<td ALIGN=\"center\">$i</td>

		<td>$bakans</td>

		<TD><center><INPUT type=\"checkbox\" name=\"vdel$i\" value=\"vdel$i\"></center></TD>

		</tr>";

	  $i--;

	 }

	 $sth->finish();

	 $dbh->disconnect();

	 print "</table></center>";

	 print "<br>";

	 print "<center><table border=0>";

	 print "<tr><td><center><INPUT type=\"submit\" value=\"Удалить\"></center\></td>";

	 print "</FORM>";

	

	 print "<td><FORM action=\"http://myserver/cgi-bin/Konti.bat\">";

	 print "<center><INPUT type=\"submit\" value=\"На главную\"></center\></td></tr>";

	 print "</FORM>";

	 print "</table></center>";

	}

	else

	{

	 print h1("Неправильный пароль!!!");

	}

	

	print end_html();

	

	Файл BDankets.cgi – исполняемая программа.

	Выводит список анкет на основе данных таблицы t2 и предлагает администратору удалить наименее перспективные.

	Имеет 2 кнопки:

			“Удалить" - запускает скрипт ankdel.cgi;

			“На главную" - запускает скрипт Konti.cgi;

	и 2 ссылки:

			“Список вакансий" - запускает скрипт BDvakans.cgi;

			“Список анкет" - запускает скрипт BDankets.cgi.

	

	

	BDankets.cgi

	

	use CGI qw(:standard);

	 use DBI;

	 print header();

	 print start_html("Список Анкет");

	 print qq{<body bgcolor="#faf1d8">};

	 my $pass=param("111");

	 print "<center><h1>База данных</h1></center>";

	 print "<center>";

	 print qq{<A href="http://myserver/cgi-bin/BDvakans.bat"><font size="5">Список вакансий</A>};

	 print "&nbsp &nbsp &nbsp &nbsp";

	 print qq{<A href="http://myserver/cgi-bin/BDankets.bat">Список анкет</font></A>};

	 print "</center>";

	

	 print qq{<p ALIGN="center"><font size="5"><strong><font color="#800000">Список анкет &nbsp&nbsp&nbsp</font></strong></font>};

	

	 $dbh=DBI->connect("dbi:mysql:konti");

	 $sth=$dbh->prepare("SELECT * FROM t2;");

	 $rows=$sth->execute();

	 print "<form action=\"http://myserver/cgi-bin/ankdel.bat\">";

	 print "<center><table border=1>";

	 print qq{<tr ALIGN="center"><th>&nbsp№&nbsp</th>

				     <th>Фамилия Имя Отчество</th>

				     <th>Образование</th>

				     <th>Специальность</th>

				     <th>Срок работы по спец-ти</th>

				     <th>Адрес</th>

				     <th>Вакансия</th>

				     <th>Пометить<br>на удаление</th></font></tr>};

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

	 {

	  ($fio,$eda,$cpca,$croka,$adress,$vak)=$sth->fetchrow_array;

	  $i++;

	  print"<tr>

		<td><center>$i</center></td>

		<td><center>$fio</center></td>	

		<td><center>$eda</center></td>	

		<td><center>$cpca</center></td>	

		<td><center>$croka</center></td>	

		<td><center>$adress</center></td>	

		<td><center>$vak</center></td>	

		<TD><center><INPUT type=\"checkbox\" name=\"vdel$i\" value=\"vdel$i\"></center></TD>

		</tr>";

	  $i--;

	 }

	 $sth->finish();

	 $dbh->disconnect();

	 print "</table></center>";

	 print "<br>";

	 print "<center><table border=0>";

	 print "<tr><td><center><INPUT type=\"submit\" value=\"Удалить\"></center\></td>";

	 print "</FORM>";

	

	 print "<td><FORM action=\"http://myserver/cgi-bin/Konti.bat\">";

	 print "<center><INPUT type=\"submit\" value=\"На главную\"></center\></td></tr>";

	 print "</FORM>";

	 print "</table></center>";

	

	print end_html();

	

	Файл Addvakan.cgi – исполняемая программа.

	Предлагает администратору форму для внесения данных для новой вакансии

	Имеет 2 кнопки:

			“Отправить данные" - запускает скрипт Dob.cgi и передает в него данные новой вакансии;

			“Очистить форму" - стирает из формы ошибочно введенные данные.

	

	Addvakan.cgi

	

	use CGI qw(:standard);

	 use DBI;

	 print header();

	 print start_html("Добавление Вакансии");

	 print qq{<body bgcolor="#faf1d8">};

	print "<center><h1>Заполните данные для новой вакансии</h1></center>";

	print "<form action=\"http://myserver/cgi-bin/Dob.bat\">";

	print "<center><table>";

	print "<TR><TD>Должность</TD><TD><input name=\"profv\"></TD></TR>";

	print "<TR><TD>Образование</TD>

		   <TD><SELECT name=\"edv\">

	           <OPTION value=\"высшее\" selected>высшее

		   <OPTION value=\"нез/высшее\">нез/высшее

	           <OPTION value=\"ср. техническое\">ср. техническое

	           <OPTION value=\"ср. специальное\">ср. специальное

	           <OPTION value=\"среднее\">среднее

	           </SELECT>

		   </TD></TR>";

	print "<TR><TD>Специальность</TD><TD><input name=\"cpcv\"></TD></TR>";

	print "<TR><TD>Стаж работы по специальности, лет&nbsp</TD><TD><input name=\"crokv\"></TD></TR>";

	print "<TR><TD><BR></TD></TR>";

	print "<TR><TD><input type=\"submit\" value=\"Отправить данные\"></TD>

		   <TD><INPUT type=\"reset\" value=\"Очистить форму\"></TD></TR>";

	print "</table></center>";

	print "<br>";

	print "</form>";

	print end_html();

	

	

	

	Файл Dob.cgi – исполняемая программа.

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

	Имеет 2 кнопки:

			“Назад" - запускает скрипт Addvakan.cgi;;

			“На главную" - запускает скрипт Konti.cgi;;

	и 2 ссылки:

			“Список вакансий" - запускает скрипт BDvakans.cgi;

			“Список анкет" - запускает скрипт BDankets.cgi.

	

	

	

	Dob.cgi

	

	use CGI qw(:standard);

	 use DBI;

	 print header();

	 print start_html("Добавление Вакансии");

	 print qq{<body bgcolor="#faf1d8">};

	 print "<center><h1>База данных</h1></center>";

	 print "<center>";

	 print qq{<A href="http://myserver/cgi-bin/BDvakans.bat"><font size="5">Список вакансий</A>};

	 print "&nbsp &nbsp &nbsp &nbsp";

	 print qq{<A href="http://myserver/cgi-bin/BDankets.bat">Список анкет</font></A>};

	 print "</center>";

	 $dbh=DBI->connect("dbi:mysql:konti");

	 $sth=$dbh->prepare("SELECT * FROM t1;");

	

	 my $profv=param("profv");

	 my $edv=param("edv");

	 my $cpcv=param("cpcv");

	 my $crokv=param("crokv");

	    $crokv=~ s/\D+//;

	 if ($profv ne "")

	{

	$sql=qq{insert into t1(prof, knkrs, ed, cpc, crok) values ('$profv',0,'$edv','$cpcv','$crokv');};

	$dbh->do($sql);

	print "<br>";

	 $sth->finish();

	 $dbh->disconnect();

	}

	else {print qq{<br><center><font size="4">Вы не ввели данные. Повторите ввод.</font></center><br>};}

	

	 print "<center><table border=0>";

	 print "<tr><td><FORM action=\"http://myserver/cgi-bin/Addvakan.bat\">";

	 print "<center><INPUT type=\"submit\" value=\"Назад\"></center\>"; 

	 print "</FORM></td>";

	

	 print "<td><FORM action=\"http://myserver/cgi-bin/Konti.bat\">";

	 print "<center><INPUT type=\"submit\" value=\"На главную\"></center\>";

	 print "</FORM></td></tr>";

	 print "</table></center>";

	print end_html();

	

	

	

	

	

	

	

	

	Файл vakdel.cgi– исполняемая программа.

	Служебная программа для удаления вакансии из таблицы t1.

	Имеет 1 кнопку:

			“Назад" - запускает скрипт Konti.cgi;

	и 2 ссылки:

			“Список вакансий" - запускает скрипт BDvakans.cgi;

			“Список анкет" - запускает скрипт BDankets.cgi.

	

	vakdel.cgi

	

	use CGI qw(:standard);

	 use DBI;

	 print header();

	 print start_html("Удаление Вакансии");

	 print qq{<body bgcolor="#faf1d8">};

	 print "<center><h1>База данных</h1></center>";

	 print "<center>";

	 print qq{<A href="http://myserver/cgi-bin/BDvakans.bat"><font size="5">Список вакансий</A>};

	 print "&nbsp &nbsp &nbsp &nbsp";

	 print qq{<A href="http://myserver/cgi-bin/BDankets.bat">Список анкет</font></A>};

	 print "</center>";

	

	 $dbh=DBI->connect("dbi:mysql:konti");

	 $sth=$dbh->prepare("SELECT * FROM t1;");

	 $rows=$sth->execute();

	

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

	 { $i++;

	   ($bakans,$knkrs,$ed,$Cpc,$Crok)=$sth->fetchrow_array;

	   my $var=param("vdel$i");

	   $var=~ s/\D+//;

	   if ($i==$var) 

	     { 

	     $sql="delete from t1 where prof=\"$bakans\";";

	     $dbh->do($sql);

	     }

	   $i--;

	 }

	 $sth->finish();

	 $dbh->disconnect();

	

	 print "<br>";

	

	 print "<FORM action=\"http://myserver/cgi-bin/Konti.bat\">";

	 print "<center><INPUT type=\"submit\" value=\"На главную\"></center\>";

	 print "</FORM>";

	

	 print end_html();

	

	

	

	Файл ankdel.cgi– исполняемая программа.

	Служебная программа для удаления анкеты из таблицы t2 и уменьшения значения конкурса на вакансию в таблице t1.

	Имеет 1 кнопку:

			“На главную" - запускает скрипт Konti.cgi;

	и 2 ссылки:

			“Список вакансий" - запускает скрипт BDvakans.cgi;

			“Список анкет" - запускает скрипт BDankets.cgi.

	

	ankdel.cgi

	

	use CGI qw(:standard);

	 use DBI;

	 print header();

	 print start_html("Удаление Анкеты");

	 print qq{<body bgcolor="#faf1d8">};

	 print "<center><h1>База данных</h1></center>";

	 print "<center>";

	 print qq{<A href="http://myserver/cgi-bin/BDvakans.bat"><font size="5">Список вакансий</A>};

	 print "&nbsp &nbsp &nbsp &nbsp";

	 print qq{<A href="http://myserver/cgi-bin/BDankets.bat">Список анкет</font></A>};

	 print "</center>";

	

	 $dbh=DBI->connect("dbi:mysql:konti");

	 $sth=$dbh->prepare("SELECT * FROM t2;");

	 $rows=$sth->execute();

	

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

	 { $i++;

	   ($fio, $eda, $cpca, $croka, $adress, $vak)=$sth->fetchrow_array;

	   my $var=param("vdel$i");

	   $var=~ s/\D+//;

	   if ($i==$var) 

	     { 

		 $sql="delete from t2 where fio=\"$fio\";";

	         $dbh->do($sql);    

		 my $sth=$dbh->prepare("SELECT * FROM t1;");

		 my $rows=$sth->execute();

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

		  {

		    ($bakans,$knkrs,$ed,$Cpc,$Crok)=$sth->fetchrow_array;

		    if ($bakans eq $vak)

		    {

	      		$knkrs=$knkrs-1;

			$sql="update t1 set knkrs='$knkrs' where prof='$vak';";

	 		$dbh->do($sql);

		    }

		  }

		 $sth->finish();

	     }

	   $i--;

	 }

	 $sth->finish();

	 $dbh->disconnect();

	

	 print "<br>";

	

	 print "<FORM action=\"http://myserver/cgi-bin/Konti.bat\">";

	 print "<center><INPUT type=\"submit\" value=\"На главную\"></center\>";

	 print "</FORM>";

	

	 print end_html();

	

	

	

	

	

	Схема размещения информации на Internet-узле

	

	На сервере информация располагается следующим образом:

	

C:\Apache\

           htdocs\



Kontinental-HH.htm

titul.htm



          cgi-bin\



Addanket.bat

Addvakan.bat

Addvakan.cgi

ankdel.bat

ankdel.cgi

anketa.bat

anketa.cgi

BDankets.bat

BDankets.cgi

BDvakans.bat

BDvakans.cgi

Dob.bat

Dob.cgi

itog.bat

itog.cgi

Konti.bat

Konti.cgi

konti.txt

list.bat

list.cgi

start.bat

vakdel.bat

vakdel.cgi

	

	

	

	Контрольный пример работы пользователя.

	

	Главная страница (Kontinental-HH.htm):

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	Выбор вакансии (list.cgi):

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	Заполнение анкеты (anketa.cgi):

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	Успешное внесение анкеты в базу данных (itog.cgi):

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	Контрольный пример работы администратора

	Просмотр списка вакансий (BDvakans.cgi).

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	Просмотр списка вакансий (BDankets.cgi).

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	Добавление новой вакансии (Addvakan.cgi)

	

	

	

	

	Выводы.

	

	 Разработка информационной системы на базе MySQL и Internet позволяет создать большую базу данных. Данная система удобна в использовании и разработке программно.

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

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

	 Легко организовать многопользовательскую работу.

	

	

	

	Использованная литература.



Айсбари С.:  Корпоративные решения на базе LINUX.

Орлов С. А.:  Технологии разработки ПО. Разработка сложных программных систем.

Материалы лекций.