и 2 ссылки:
- “Список вакансий"- запускает скрипт BDvakans.cgi;
- “Список анкет" - запускает скрипт BDankets.cgi.
Dob.cgi
use CGI qw(:standard);
use DBI;
print header();
print start_html("Добавление Вакансии");
print qq{<bodybgcolor="#faf1d8">};
print "<center><h1>Базаданных</h1></center>";
print "<center>";
print qq{<Ahref="http://myserver/cgi-bin/BDvakans.bat"><fontsize="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><fontsize="4">Вы не ввели данные. Повторитеввод.</font></center><br>};}
print "<center><table border=0>";
print "<tr><td><FORMaction=\"http://myserver/cgi-bin/Addvakan.bat\">";
print "<center><INPUT type=\"submit\"value=\"Назад\"></center\>";
print "</FORM></td>";
print "<td><FORMaction=\"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{<Ahref="http://myserver/cgi-bin/BDvakans.bat"><fontsize="5">Список вакансий</A>};
print "       ";
print qq{<Ahref="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 whereprof=\"$bakans\";";
$dbh->do($sql);
}
$i--;
}
$sth->finish();
$dbh->disconnect();
print "<br>";
print "<FORMaction=\"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{<Ahref="http://myserver/cgi-bin/BDvakans.bat"><fontsize="5">Список вакансий</A>};
print "       ";
print qq{<Ahref="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 wherefio=\"$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' whereprof='$vak';";
$dbh->do($sql);
}
}
$sth->finish();
}
$i--;
}
$sth->finish();
$dbh->disconnect();
print "<br>";
print "<FORMaction=\"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. Материалы лекций.