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

Дата: 21.05.2016

		

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

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

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

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

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

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

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

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

На базе MySQL и Internet

Выполнили:
Греков В.В.
Певченко Г.П.
группа 99-ИКУ

Проверил:
Штанюк А.А.

г.Кстово

2003

Содержание

1 Задание
2 Анализ задания
3 Проектирование базы данных
4 Разработка CGI-программ и HTML-документов
5 Схема размещения информации на Internet узле
6 Контрольный пример
7 Выводы
8 Список литературы

Задание

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

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

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

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

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

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

После запуска MySQL в командной строке создаем базу данных Konti:
C:mysqlinmysqladmin 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','$adr
ess','$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):

[pic]

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

[pic]

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

[pic]

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

[pic]

Контрольный пример работы администратора
Просмотр списка вакансий (BDvakans.cgi).

[pic]

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

[pic]

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

[pic]

Выводы.

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

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

1. Айсбари С.: Корпоративные решения на базе LINUX.
2. Орлов С. А.: Технологии разработки ПО. Разработка сложных
программных систем.
3. Материалы лекций.

Метки:
Автор: 

Опубликовать комментарий