|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Konstantin Maslennikov 2:5020/400 28 Oct 2000 15:44:50 To : All Subject : ПОЧЕМУ??? --------------------------------------------------------------------------------
Итак, имеем скрипт:
================================ HАЧАЛО ===============================
#!/usr/bin/perl -wT
use locale;
use CGI qw/:standard/;
$database="database";
$hostname="";
$user="username";
$password="password";
print header,
start_html('TEST') ;
sub connectToDB {
use DBI;
$driver = "mysql";
$dsn = "DBI:$driver:database=$database;host=$hostname";
$dbh = DBI->connect($dsn, $user, $password) or die print "Failed to connect
to mysql server" .$DBI::errstr ; }
sub citys {
my $asth = $dbh->prepare("select * from city order by city");
$asth->execute;
while ( my(@ttt) = $asth->fetchrow_array){
$citys{$ttt[0]} = $ttt[1]; }
return %citys;
$asth->finish;
}
&connectToDB;
%citys = &citys;
$citys{0} = "-----------------";
print start_form( -action=>'/cgi-bin/script.cgi');
print "<SELECT NAME=\"city_b\">";
@test = sort {$citys{$a} cmp $citys{$b}} keys %citys;
foreach (@test) {
if ($_ == 0 ) { print "<OPTION VALUE=$_ SELECTED>$citys{$_}";}
else { print "<OPTION VALUE=$_>$citys{$_}";}
}
print "</SELECT>";
print br, submit, reset, end_form;
print end_html;
================================ КОHЕЦ ===============================
В базе города храняся в таком порядке:
mysql> select * from city;
+----+-----------+
| id | city |
+----+-----------+
| 7 | Пенза |
| 6 | Гродно |
| 5 | Астрахань |
| 4 | Саров |
| 3 | Тамбов |
| 2 | Воркута |
| 1 | Казань |
+----+-----------+
Вот что выдает если запускать его из командной строки:
================================ HАЧАЛО ===============================
<HTML><HEAD><TITLE>TEST</TITLE></HEAD>
<BODY>
<FORM METHOD="POST" ACTION="/cgi-bin/script.cgi"
ENCTYPE="application/x-www-form-urlencoded">
<SELECT NAME="city_b">
<OPTION VALUE=0 SELECTED>-----------------
<OPTION VALUE=5>Астрахань
<OPTION VALUE=2>Воркута
<OPTION VALUE=6>Гродно
<OPTION VALUE=1>Казань
<OPTION VALUE=7>Пенза
<OPTION VALUE=4>Саров
<OPTION VALUE=3>Тамбов
</SELECT>
<INPUT TYPE="submit" NAME=".submit"><INPUT TYPE="reset">
</FORM></BODY></HTML>
================================ КОHЕЦ ===============================
А вот что получается в броузере :
================================ HАЧАЛО ===============================
<HTML><HEAD><TITLE>TEST</TITLE></HEAD>
<BODY>
<FORM METHOD="POST" ACTION="/cgi-bin/script.cgi"
ENCTYPE="application/x-www-form-urlencoded">
<SELECT NAME="city_b">
<OPTION VALUE=0 SELECTED>-----------------
<OPTION VALUE=5>Астрахань
<OPTION VALUE=6>Гродно
<OPTION VALUE=1>Казань
<OPTION VALUE=7>Пенза
<OPTION VALUE=4>Саров
<OPTION VALUE=3>Тамбов
<OPTION VALUE=2>Воркута
</SELECT>
<INPUT TYPE="submit" NAME=".submit"><INPUT TYPE="reset">
</FORM></BODY></HTML>
================================ КОHЕЦ ===============================
Внимание, вопрос: ПОЧЕМУ "Воркута" уехала в конец???? Чем отличается вывод
скрипта в консоль
от вывода в броузер???
--
Best regards,
K.Maslennikov kosmas@mail.wplus.net
http://www.ksp.spb.ru
З.Ы. Может, кто подскажет как проще сделать то же - отсортировать хеш по
значениям и сделать из него popup_menu?
--- ifmail v.2.15dev5
* Origin: WEBPlus Ltd. (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/13431c06f2c15.html, оценка из 5, голосов 10
|