Реферат: Проектирование информационных систем на базе 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">ОАО «Континенталь-НН» ®</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=«myserver/cgi-bin/list.bat»>

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

</form>

<br>

<form action=«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=\«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=\«myserver/cgi-bin/list.bat\»>";

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

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

 print "<td><FORM action=\«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=\«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=\«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=\«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=«myserver/cgi-bin/BDvakans.bat»><font size=«5»>Список вакансий</A>};

 print "       ";

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

 print "</center>";

 print "<FORM action=\«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=\«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=\«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=«myserver/cgi-bin/BDvakans.bat»><font size=«5»>Список вакансий</A>};

 print "       ";

 print qq{<A href=«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=\«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=\«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=\«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=«myserver/cgi-bin/BDvakans.bat»><font size=«5»>Список вакансий</A>};

 print "       ";

 print qq{<A href=«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=\«myserver/cgi-bin/Addvakan.bat\»>";

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

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

 print "<td><FORM action=\«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=«myserver/cgi-bin/BDvakans.bat»><font size=«5»>Список вакансий</A>};

 print "       ";

 print qq{<A href=«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=\«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=«myserver/cgi-bin/BDvakans.bat»><font size=«5»>Список вакансий</A>};

 print "       ";

 print qq{<A href=«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=\«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.   Материалы лекций.

еще рефераты
Еще работы по информатике, программированию