Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Удаление информации из базы (удаление страны)
Часть1 #!d:/actiperl/bin/perl.exe use DBI; use CGI qw(standart escapeHTML); my $dbh; my $sth; my %type = (); my $base = 'wineyard'; my $comp = 'localhost'; my $dbport = '3306'; my ($ky, $val); print "Content-type: text/html\n\n"; print <<EOH; <HTML> <HEAD> <META NAME="Author" CONTENT=""> <style type="text/css"> .norm {padding-left: 20; padding-right: 10; padding-top: 5; } a {text-decoration: none; } </style> <TITLE>Wineyard - Удаление стран</TITLE> </HEAD> <BODY BGCOLOR="white" TEXT="#000000" LINK="#0000EE" VLINK="#CC0080" ALINK="#CC66CC"> <h1 align="center"><font color="#0602B0" size="+3">Wineyard</font></h1> <p class="norm" align="center"><font size="+1"><b>Удаление стран-производителей из базы данных. </b></font></p> <hr align="center" noshade size="2" width="90%"> EOH $dbh = DBI->connect("DBI:mysql:database=$base;host=$comp;port=$dbport", '', ''); if (not $dbh) { print <<ERRDB; <p class="norm">Не удалось открыть связь с базой <b>$base</b> по порту $dbport.<br> Причина ошибки – <b>$DBI::errstr</b></p> <hr align="center" noshade size="2" width="90%"> <p class="norm" align="left"><font size="+1"><a href="/wineyard/index.html">Вернуться к главной странице</a></font></p> </body></html> ERRDB exit; }; $sth = $dbh->prepare('select ctry, id from country where id > 0'); $sth->execute; while(($ky, $val)=$sth->fetchrow_array) { $type{$ky} = $val; }; $sth->finish; $dbh->disconnect; print <<SOF; <p class="norm" align="center"><font color=navy size="+1">Выберите страну-производитель для удаления:</font></p><br><br> <table cellpadding="5" align="center" border="0"> <form name="delt" action="delb.pl" method="post"> <div align="center"> <select name="ctry"> SOF foreach $ky (sort keys %type) { $val = $type{$ky}; print "<option value=$val>$ky\n"; }; print <<EOFR; </select> <input type="submit" value="Удалить страну-производитель"></div><br><br> </form> </table> <hr align="center" noshade size="2" width="90%"> <p class="norm" align="left"><font size="+1"> <a href="/wineyard/index.html">Вернуться к главной странице</a></font> </p> </BODY> </HTML> EOFR exit; Часть 2 #!d:/actiperl/bin/perl.exe # add new country to database - 2-nd stage -- updating countries data
use DBI; use CGI qw(:standard);
# declarations my $dbh; #database handler my $sth; #database statement handler my $base = 'wineyard'; #database name my $comp = 'localhost'; #IP-address of host computer my $dbport = '3306'; #standard MySQL port my ($asd); my %tmphash = (); my @ctry = ();
print "Content-type: text/html\n\n";
$ctry = param('ctry');
print <<EOH; <HTML> <HEAD> <META NAME="Author" CONTENT=""> <style type="text/css"> .norm {padding-left: 20; padding-right: 10; padding-top: 10; } a {text-decoration: none; } </style> <TITLE>Wineyard Delete Countries</TITLE> </HEAD> <BODY BGCOLOR="white" TEXT="#000000" LINK="#0000EE" VLINK="#CC0080" ALINK="#CC66CC"> <h1 align="center"><font color="#0602B0" size="+4">Wineyard</font></h1> <p class="norm" align="center"><font size="+1">Интерфейс к базе данных по винам на основе <b>MySQL</b></font></p> <hr align="center" noshade size="2" width="90%"> <h3><p class="norm" align="center"><strong><u><font face="verdana" color="#cc0033" size="6">ВНИМАНИЕ!!!</font></strong></u></p></h3>
<p align="center"><font face="verdana,arial" color=" #8d3907"> * За удаляемой страной могут быть закреплены напитки.<br> Которые удаляться вместе со страной.<br> Если не хотите потерять данные, убедитесь в их отсутствии. </font></p><br>
<form name="del" action="/cgi-bin/delbd1.pl" method="post">
EOH
# Проверка на ошибки связи с базой $dbh = DBI->connect("DBI:mysql:database=$base;host=$comp;port=$dbport", '', ''); if (not $dbh) { print <<ERRDB; <p class="norm">Не удалось открыть связь с базой <b>$base</b> по порту $dbport.<br> Причина ошибки – <b>$DBI::errstr</b></p> <hr align="center" noshade size="2" width="90%"> <p class="norm" align="left"><font size="+1"><a href="/wineyard/index.html">Вернуться к главной странице</a></font></p> </body></html> ERRDB exit; };
############################# Запрос стран у базы $sth = $dbh->prepare('select ctry from country where id='.$ctry.';'); $sth->execute; while(($ky)=$sth->fetchrow_array) { $countries = $ky; }; $sth->finish; $dbh->disconnect;
########## Вывод ДАННЫХ print <<NM; <p align="center"><b>Удаляется страна</b> - <font color="#0602B0" face="verdana,arial" size="+2">$countries</font></p> <p class="norm" align="center"><b> <input name="ctry" type="hidden" value="$ctry"> <input name="ctry" type="hidden" value="$countries"> NM
####### print <<EODT; <br><br> <table align="center">
<tr> <td> <input type="submit" value="Удалить страну"> </form></td> <td> <form name="asd" action="del.pl" method="get" > <input type="submit" value="Отмена"> </form></td> </tr> </table>
</b></p> <hr align="center" noshade size="2" width="90%"> <p class="norm" align="left"><font size="+1"><a href="/cgi-bin/del.pl">Удаление стран </a></font></p> <p class="norm" align="left"><font size="+1"><a href="/wineyard/index.html">Вернуться к главной странице</a></font></p> <hr align="center" noshade size="2" width="90%"> </BODY> </HTML> EODT exit; Часть 3 #!d:/actiperl/bin/perl.exe # add new country to database - 2-nd stage -- updating countries data
use DBI; use CGI qw(:standard);
# declarations my $dbh; #database handler my $sth; #database statement handler my $base = 'wineyard'; #database name my $comp = 'localhost'; #IP-address of host computer my $dbport = '3306'; #standard MySQL port my ($ky, $val); my %tmphash = (); my %skl = (); my %type = (); my %name = (); my %qty = ();
print "Content-type: text/html\n\n";
$ncnt = param('ncnt'); $ncn = param('ncn');
print <<EOH; <HTML> <HEAD> <META NAME="Author" CONTENT=""> <style type="text/css"> .norm {padding-left: 20; padding-right: 10; padding-top: 10; } a {text-decoration: none; } </style> <TITLE>Wineyard Delete Countries</TITLE> </HEAD> <BODY BGCOLOR="white" TEXT="#000000" LINK="#0000EE" VLINK="#CC0080" ALINK="#CC66CC"> <h1 align="center"><font color="#0602B0" size="+4">Wineyard</font></h1> <p class="norm" align="center"><font size="+1">Интерфейс к базе данных по винам на основе <b>MySQL</b></font></p> <hr align="center" noshade size="2" width="90%"> <h3><p class="norm" align="center"><b>Удаленa странa:</b></p></h3> EOH ############# ошибки при загрузке сценария $dbh = DBI->connect("DBI:mysql:database=$base;host=$comp;port=$dbport", '', ''); if (not $dbh) { print <<ERRDB; <p class="norm">Не удалось открыть связь с базой <b>$base</b> по порту $dbport.<br> Причина ошибки – <b>$DBI::errstr</b></p> <hr align="center" noshade size="2" width="90%"> <p class="norm" align="left"><font size="+1"><a href="/wineyard/index.html">Вернуться к главной странице</a></font></p> </body></html> ERRDB exit; };
# Передача переменных $sth = $dbh->prepare('SELECT wine.id, wine.name, wine.store, wine.quant FROM wine, country WHERE wine.c_id = country.id AND country.id='.$ncnt.' ORDER BY wine.name;'); $sth->execute; while(($ky, $val, $skl, $qty)=$sth->fetchrow_array) { $name{$ky} = $val; $skl{$ky} = $skl; $qty{$ky} = $qty; }; foreach $ky (sort keys %name) { $val = $name{$ky}; $name = $val; $sth = $dbh->prepare('DELETE FROM wine WHERE name='.$name.';'); $sth->execute; $sth->finish; }; foreach $ky (sort keys %skl) { $val = $skl{$ky}; $skl = $val; $sth = $dbh->prepare('DELETE FROM wine WHERE store='.$skl.';'); $sth->execute; $sth->finish; }; foreach $ky (sort keys %qty) { $val = $qty{$ky}; $qty = $val; $sth = $dbh->prepare('DELETE FROM wine WHERE quant='.$qty.';'); $sth->execute; $sth->finish; }; $sth = $dbh->prepare('DELETE FROM country WHERE id='.$ncnt.';'); $sth->execute; $sth->finish; $dbh->disconnect;
########## Вывод ДАННЫХ
print <<NM;
<p class="norm" align="center">Страна <b>$ncn </b> - удалена</p>
NM ####### print <<EODT; <hr align="center" noshade size="2" width="90%"> <p class="norm" align="left"><font size="+1"><a href="/cgi-bin/del.pl">Удаление стран </a></font></p> <p class="norm" align="left"><font size="+1"><a href="/wineyard/index.html">Вернуться к главной странице</a></font></p> <hr align="center" noshade size="2" width="90%"> </BODY> </HTML> EODT exit; Date: 2016-07-25; view: 396; Нарушение авторских прав |