|
||||||||||||
|
||||||||||||
|
|||||||||
МЕНЮ
|
БОЛЬШАЯ ЛЕНИНГРАДСКАЯ БИБЛИОТЕКА - РЕФЕРАТЫ - Проектирование информационных систем на базе MySQL и InternetПроектирование информационных систем на базе 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>Проектирование информационных систем на базе MySQL и Internet</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> </td></tr></table> </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=../../index.html"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=../../index.html"center\">$i</td>"; $i--; print"<td>$bakans</td> <td><center>$knkrs</center></td> <TD><center><INPUT type=../../index.html"radio\" name=../../index.html"vibor\" value=../../index.html"vib$i\"></center></TD> </tr>"; } $sth->finish(); $dbh->disconnect(); print"</table></center>"; print "<br>"; print "<center><INPUT type=../../index.html"submit\" value=../../index.html"Заполнить анкету\"></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=../../index.html"http://myserver/cgi-bin/list.bat\">"; print "<center><INPUT type=../../index.html"submit\" value=../../index.html"Назад\"></center\>"; print "</FORM></td>"; print "<td><FORM action=../../index.html"http://myserver/cgi-bin/Konti.bat\">"; print "<center><INPUT type=../../index.html"submit\" value=../../index.html"На главную\"></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=../../index.html"http://myserver/cgi-bin/itog.bat\">"; print "<center><table>"; print "<TR><TD>Фамилия имя отчество</TD><TD><input name=../../index.html"fio\"></TD></TR>"; print "<TR><TD>Образование</TD> <TD><SELECT name=../../index.html"ed\"> <OPTION value=../../index.html"высшее0\" selected>высшее <OPTION value=../../index.html"нез/высшее1\">нез/высшее <OPTION value=../../index.html"ср. техническое2\">ср. техническое <OPTION value=../../index.html"ср. специальное3\">ср. специальное <OPTION value=../../index.html"среднее4\">среднее </SELECT> </TD></TR>"; print "<TR><TD>Специальность</TD><TD><input name=../../index.html"cpc\"></TD></TR>"; print "<TR><TD>Стаж работы по специальности, лет </TD><TD><input name=../../index.html"crok\"></TD></TR>"; print "<TR><TD>Адрес</TD><TD><input name=../../index.html"adress\"></TD></TR>"; print "<TR><TD><BR></TD></TR>"; print qq{<INPUT type="hidden" name="vib" value=$pas>}; print "<TR><TD><input type=../../index.html"submit\" value=../../index.html"Отправить\"></TD> <TD><INPUT type=../../index.html"reset\" value=../../index.html"Очистить форму\"></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=../../index.html"http://myserver/cgi-bin/anketa.bat\">"; print qq{<INPUT type="hidden" name="vibor" value="vibor$var">}; print "<center><INPUT type=../../index.html"submit\" value=../../index.html"Назад\"></center\>"; print "</FORM></td>"; print "<td><FORM action=../../index.html"http://myserver/cgi-bin/Konti.bat\">"; print "<center><INPUT type=../../index.html"submit\" value=../../index.html"На главную\"></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=../../index.html"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=../../index.html"submit\" value=../../index.html"Добавить\"></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=../../index.html"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=../../index.html"center\">$i</td> <td>$bakans</td> <TD><center><INPUT type=../../index.html"checkbox\" name=../../index.html"vdel$i\" value=../../index.html"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=../../index.html"submit\" value=../../index.html"Удалить\"></center\></td>"; print "</FORM>"; print "<td><FORM action=../../index.html"http://myserver/cgi-bin/Konti.bat\">"; print "<center><INPUT type=../../index.html"submit\" value=../../index.html"На главную\"></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=../../index.html"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=../../index.html"checkbox\" name=../../index.html"vdel$i\" value=../../index.html"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=../../index.html"submit\" value=../../index.html"Удалить\"></center\></td>"; print "</FORM>"; print "<td><FORM action=../../index.html"http://myserver/cgi-bin/Konti.bat\">"; print "<center><INPUT type=../../index.html"submit\" value=../../index.html"На главную\"></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=../../index.html"http://myserver/cgi-bin/Dob.bat\">"; print "<center><table>"; print "<TR><TD>Должность</TD><TD><input name=../../index.html"profv\"></TD></TR>"; print "<TR><TD>Образование</TD> <TD><SELECT name=../../index.html"edv\"> <OPTION value=../../index.html"высшее\" selected>высшее <OPTION value=../../index.html"нез/высшее\">нез/высшее <OPTION value=../../index.html"ср. техническое\">ср. техническое <OPTION value=../../index.html"ср. специальное\">ср. специальное <OPTION value=../../index.html"среднее\">среднее </SELECT> </TD></TR>"; print "<TR><TD>Специальность</TD><TD><input name=../../index.html"cpcv\"></TD></TR>"; print "<TR><TD>Стаж работы по специальности, лет </TD><TD><input name=../../index.html"crokv\"></TD></TR>"; print "<TR><TD><BR></TD></TR>"; print "<TR><TD><input type=../../index.html"submit\" value=../../index.html"Отправить данные\"></TD> <TD><INPUT type=../../index.html"reset\" value=../../index.html"Очистить форму\"></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=../../index.html"http://myserver/cgi- bin/Addvakan.bat\">"; print "<center><INPUT type=../../index.html"submit\" value=../../index.html"Назад\"></center\>"; print "</FORM></td>"; print "<td><FORM action=../../index.html"http://myserver/cgi-bin/Konti.bat\">"; print "<center><INPUT type=../../index.html"submit\" value=../../index.html"На главную\"></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=../../index.html"http://myserver/cgi-bin/Konti.bat\">"; print "<center><INPUT type=../../index.html"submit\" value=../../index.html"На главную\"></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=../../index.html"http://myserver/cgi-bin/Konti.bat\">"; print "<center><INPUT type=../../index.html"submit\" value=../../index.html"На главную\"></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. Материалы лекций. |
РЕКЛАМА
|
|||||||||||||||||
|
БОЛЬШАЯ ЛЕНИНГРАДСКАЯ БИБЛИОТЕКА | ||
© 2010 |