Министерство
образования Российской Федерации
Нижегородский Государственный Технический
Университет
Нижегородский Вечерний
Факультет
Кафедра: Компьютерные технологии в проектировании и
производстве
Курсовая работа
по дисциплине:
«Проектирование
информационных систем»
Проектирование
информационных систем
На базе 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">ОАО "Континенталь-НН"
®</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> № </th>
<th>Вакансия</th><th> Конкурс <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> Вы забыли выбрать вакансию!</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>Срок работы по специальности,
лет </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>Стаж работы
по специальности, лет </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 " 
     ";
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">Список вакансий
   </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> № </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 "       ";
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">Список анкет
   </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> № </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>Стаж работы
по специальности, лет </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 "       ";
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 "       ";
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 "       ";
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)
Выводы.
l
Разработка
информационной системы на базе MySQL и Internet
позволяет создать большую базу данных. Данная система удобна в использовании и
разработке программно.
l
Большое значение имеет
то, что существует отделение программы управления базой данных от интерфейса.
l
Интерфейс заключается в
создании запросов на SQL, передаче их серверу и получении результата.
Запросы передаются в виде строк. При получении запроса основную работу
выполняет сервер. Клиенту высылаются только данные, полученные в результате
получения запроса. Это приводит к снижению нагрузки, что позволяет повысить
безопасность при работе с данными. Перед посылкой запроса требуется регистрация
на сервере.
l
Легко организовать
многопользовательскую работу.
Использованная
литература.
1.
Айсбари С.: Корпоративные решения
на базе LINUX.
2.
Орлов С. А.: Технологии
разработки ПО. Разработка сложных программных систем.
3.
Материалы лекций.