Главная страница


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)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 SQL запрос - продолжение   Sergey Nepsha   30 Dec 2002 21:25:20 
 Re: SQL запрос - продолжение   Artem Chuprina   31 Dec 2002 13:46:45 
 SQL запрос - продолжение   Victor Kasatkin   01 Jan 2003 21:05:24 
Архивное /ru.cgi.perl/12166e72ff2df.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional