Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 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>Страна-производитель:&nbsp;$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; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.02 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию