|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Sergey Nepsha 2:5083/82 30 Dec 2002 21:25:20 To : All Subject : SQL запрос - продолжение -------------------------------------------------------------------------------- sub searchform { print header('text/html; charset=koi8-r'), start_html(-title => "Поиск анкет в службе знакомств на 68.net", -bgcolor => "white"); print a({-href => 'fm.pl'}, "Вернуться на главную"),hr; print start_form(-action => url(), -method => "post"); print p(h1({ -align => "center"}, "Введите критерии по которым вы хотите начать поиск")); print table({-bgcolor => "#9599fc", -width => '80%', -align => 'center', -border => 1}, Tr({-align => 'center'}, th({-bgcolor => "#000066", -colspan => 2}, font{-color => 'white'},"Заполните критерии поиска")), Tr( td(b("Я:")), td(popup_menu(-name => "isex", -values => ['male','female'], -labels => {'male' => 'Мужчина', 'female' => 'Женщина'}))), Tr( td(b("Ищу:")), td(popup_menu(-name => "fsex", -values => ['male','female'], -labels => {'male' => 'Мужчину', 'female' => 'Женщину'}, -default => "female"))), Tr( td(b("В возрасте:")), td("От:" . popup_menu(-name => "sage", -values => \@age) . "До:" . popup_menu(-name => "eage", -values => \@age, -default => '15'))), Tr( td(b("В городе:")), td(textfield(-name => "fcity"))), Tr( td(b("С фото:")), td(checkbox(-name => "fphoto", -value => "1", -label => "Да"))), Tr( td(b("C ICQ:")), td(checkbox(-name => "ficq", -value => "y", -label => "Да"))), Tr( td(b("C домашними страницами:")), td(checkbox(-name => "fwww", -value => "1", -label => "Да"))), Tr( td(b("Сортировать по:")), td(radio_group(-name => "sorting", -value => ["date","name"], -labels => {'date' => 'Дате заполнения анкеты', 'name' => 'Имени участника'})))); print table({-align => 'center', -border => 0}, Tr( td(submit(-name => "action", -value => "Hачать поиск")), td(" ", reset("Сброс")))); end_form(); } # эта функция выводит форму поиска ! sub process_search { # эта функция обрабатывает запрос по параметрам из 1ой функции !!! my $iam = param("isex"); my $partner = param("fsex"); my $strtage = param("sage"); my $endage = param("eage"); my $fcity = param("fcity"); my $fphoto = param("fphoto"); my $ficq = param("ficq"); my $fwww = param("fwww"); my $sorting = param("sorting"); my $tbl_info; my $val; my @condition; my @placeholder; my ($sth, $stmt, $col_list, $where); my $count; my $te = "sex = ?"; if(param("fsex") ne "") { push (@condition, $te); push (@placeholder, $partner); } if(param("sage") ne "") { push (@condition, "age >= ?"); push (@placeholder, $strtage); } if(param("eage") ne "") { push (@condition, "age <= ?"); push (@placeholder, $endage); } if(param("fcity") ne "") { push (@condition, "city = ?"); push (@placeholder, $fcity); } if(param("fphoto") ne "") { push (@condition, "photo = ?"); push (@placeholder, $fphoto); } if(param("ficq") ne "") { push (@condition, "icq != ?"); push (@placeholder, $ficq); } if(param("fwww") ne "") { push (@condition, "www != ?"); push (@placeholder, $fwww); } if(defined ($sorting) && $sorting eq 'name') { $sorting = "fname"; } else { $sorting = "date"; } } $col_list = "date, login, sex, age, city, photo, icq, www"; $where = join (" AND ", @condition); #$where = "" unless $where; my $dbh = DBI->connect ("DBI:mysql:host=$host;database=$dbname", "$dbuser", "$dbpass", {PrintError => 0, RaiseError => 1}); $stmt = "SELECT $col_list " . "FROM love_reg " . "WHERE " . $where . "ORDER BY " . $sorting; $sth = $dbh->prepare($stmt); -------------- print $stmt; # вот тут вывожу stmt и в запросе оказывается WHERE пустой (@condition пустой) !!! -------------- $sth->execute(@placeholder); $count = 0; [skip] } почем так получается? что то не могу понять. -- XMMS: M-Factor - Mother (Are You Ready To Fly) --- tin/pre-1.4-19990216 ("Styrofoam") (UNIX) (Linux/2.4.18-3custom (i686)) * Origin: 68.net InterNetNews site (2:5083/82) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.cgi.perl/12166e72ff2df.html, оценка из 5, голосов 10
|