Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Поиск информации в базе данных
Часть1 #!d:/actiperl/bin/perl.exe # add new wine to database - 1-st stage -- create html form
use DBI; # declarations my $dbh; #database handler my $sth; #database statement handler %country = (); #declared types of wines $base = 'wineyard'; #database name $comp = 'localhost'; #IP-address of host computer $dbport = '3306'; #standard MySQL port print "Content-type: text/html\n\n"; print <<EOH; <HTML> <HEAD> <META NAME="Author" CONTENT="Racitina Julia"> <style type="text/css"> .norm {padding-left: 20; padding-right: 10; padding-top: 10; } a {text-decoration: none; } </style> <TITLE>Поиск по стране-производителю</TITLE> </HEAD> <BODY BGCOLOR="#F0F0F0" 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%"> 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) { $country{$ky} = $val; }; print <<SOF; <form name="search" action="/cgi-bin/cnt2.pl" method="post"> <p class="norm" align="center"><b>Поиск по типу напитка</b></p> <p class="norm"> <table align="center" border="0" width="90%" cellpadding="2"> <tr><td align="center">Выберите страну-производителя из списка: SOF print <<MID; <select name="cnt"> MID foreach $ky (sort keys %country) { $val = $country{$ky}; print "<option value=$val >$ky\n"; }; print <<EOFR; </select> </td></tr> <tr><td align="center"><br><input type="submit" value="Вывести напитки"></td></tr> </table> </p> </form> <hr align="center" noshade size="2" width="90%"> <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> EOFR exit;
Часть2 #!d:/actiperl/bin/perl.exe # add new wine to database - 2-st stage -- check params & insert data
use DBI; use CGI qw(:standard escapeHTML);
# declarations my $dbh; #database handler my $sth; #database statement handler my %tmphash = (); my %name = (); my %qty = (); my %type = (); my %skl = (); my $base = 'wineyard'; #database name my $comp = 'localhost'; #IP-address of host computer my $dbport = '3306'; #standard MySQL port my ($ky, $type, $val, $name, $qty, $skl); my ($typ); print "Content-type: text/html\n\n"; $cnt = param('cnt'); 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>Поиск по стране-производителю</TITLE> </HEAD> <BODY BGCOLOR="#F0F0F0" 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%"> 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, type.typ, wine.store, wine.quant FROM wine, type, country WHERE wine.t_id = type.id AND wine.c_id = country.id AND country.id='.$cnt.' ORDER BY wine.name;'); $sth->execute; while(($ky, $val, $skl, $type, $qty)=$sth->fetchrow_array) { $name{$ky} = $val; $type{$ky} = $type; $skl{$ky} = $skl; $qty{$ky} = $qty; }; $sth = $dbh->prepare('SELECT country.ctry FROM country WHERE country.id='.$cnt.';'); $sth->execute; while(($vals)=$sth->fetchrow_array) { $count = $vals; }; $sth->finish; $dbh->disconnect; print <<TABL; <p class="norm" align="center"><b>Страна-производитель: $count.</b> </p> <p class="norm"> <table align="center" border="5" width="90%" cellpadding="2"> <tr> <td align="center"><font color=navy><b>Наименование напитка</b></font></td> <td align="center"><font color=navy><b>Тип напитка</b></font></td> <td align="center"><font color=navy><b>№ склада</b></font></td> <td align="center"><font color=navy><b>Количество</b></font></td> </tr> <tr> <td align=center> TABL foreach $ky (sort keys %name) { $val = $name{$ky}; $name = $val; print "$name"; print "<br>"; }; print <<SKL; </td> <td align=center> SKL foreach $ky (sort keys %skl) { $val = $skl{$ky}; $skl = $val; print "$skl"; print "<br>"; }; print <<COL; </td> <td align=center> COL foreach $ky (sort keys %qty) { $val = $qty{$ky}; $qty = $val; print "$qty"; print "<br>"; }; print <<COUNT; </td> <td align=center>
COUNT foreach $ky (sort keys %type) { $val = $type{$ky}; $type = $val; print "$type"; print "<br>"; }; print <<SOF; </td> </tr> </table> <hr align="center" noshade size="2" width="90%"> <p class="norm" align="left"><font size="+1"><a href="/cgi-bin/cnt.pl">Просмотр по другой стране-производителю</a></font></p> <p class="norm" align="left"><font size="+1"><a href="/wineyard/index.html">Вернуться к главной странице</a></font></p> </body> </html> SOF exit; Date: 2016-07-25; view: 346; Нарушение авторских прав |