#!/usr/bin/perl use DBI; use config; #require "./cgi-bin/wap_log.pm"; @twon = (1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 131072, 262144, 524288, 1048576, 2097152, 4194304, 8388608, 16777216, 33554432, 67108864, 134217728, 268435456, 536870912, 1073741824, 2147483648, 4294967296, 8589934592, 17179869184, 34359738368, 68719476736, 137438953472, 274877906944, 549755813888, 1099511627776, 2199023255552, 4398046511104, 8796093022208, 17592186044416, 35184372088832, 70368744177664, 140737488355328, 281474976710656, 562949953421312, 1.12589990684262e+15, 2.25179981368525e+15, 4.5035996273705e+15, 9.00719925474099e+15, 1.8014398509482e+16, 3.6028797018964e+16, 7.20575940379279e+16, 1.44115188075856e+17, 2.88230376151712e+17, 5.76460752303423e+17, 1.15292150460685e+18, 2.30584300921369e+18, 4.61168601842739e+18, 9.22337203685478e+18); $conn = DBI->connect("dbi:Pg:dbname=$config::dbname", "$config::user", "$config::pass"); @pairs=split(/$config::sep/,$ENV{'QUERY_STRING'}); foreach $pair(@pairs) { ($name,$value)=split(/=/,$pair); $name=~tr/+/ /; $name=~s/%([A-Fa-f0-9][A-Fa-f0-9])/pack("c",hex($1))/eg; $name=~s/\n//; $value=~tr/+/ /; $value=~s/%([A-Fa-f0-9][A-Fa-f0-9])/pack("c",hex($1))/eg; $value=~s/\n//; $P{$name}=$value; } #wap_log::log_entry(); if($P{'mob'} eq "") { $P{'mob'} = "all"; } if($P{'page'} eq "") { $P{'page'} = "0"; } if($P{'cat'} eq "new") { $cat_name_ru = "Новинки"; $cat_name_az = "Yeniliklər"; # $query = "SELECT n.artsms_id, d.desc_rus, d.desc_az, d.perf_rus, d.perf_az FROM new_tbl n, data_tbl d "; # $query .= "WHERE n.brand_id=4 and n.service_id=10 and n.artsms_id = d.artsms_id "; # $query .= "ORDER BY n.date DESC, d.desc_rus "; # $query .= "LIMIT ".($config::items_per_page + 1)." OFFSET ".($P{'page'} * $config::items_per_page); # $query = "SELECT artsms_id FROM new_tbl "; # $query .= "WHERE brand_id=4 and service_id=10 "; # $query .= "ORDER BY date DESC, artsms_id "; # $query .= "LIMIT ".($config::items_per_page + 1)." OFFSET ".($P{'page'} * $config::items_per_page); # $q = $conn->prepare($query); # $q->execute(); # $query = "SELECT artsms_id, desc_rus, desc_az, perf_rus, perf_az FROM data_tbl WHERE ("; # for($i=0;$i<$q->rows();$i++) { # @arr = $q->fetchrow_array(); # $query .= " artsms_id=".$arr[0]; # if($i+1<$q->rows()) { # $query .= " OR"; # } # } # $query .= ") ORDER BY date DESC, artsms_id"; # $q->finish(); $query = "SELECT artsms_id, desc_rus, desc_az, perf_rus, perf_az FROM data_tbl "; $query .= "WHERE service_id='10' ORDER BY date DESC, desc_rus "; $query .= "LIMIT ".($config::items_per_page + 1)." OFFSET ".($P{'page'} * $config::items_per_page); } elsif($P{'cat'} eq "top") { $cat_name_ru = "Top 30"; $cat_name_az = "Top 30"; # $query = "SELECT t.artsms_id, d.desc_rus, d.desc_az, d.perf_rus, d.perf_az FROM top_tbl t, data_tbl d "; # $query .= "WHERE t.brand_id=4 and t.service_id=10 and t.artsms_id = d.artsms_id "; # $query .= "ORDER BY d.desc_rus "; # $query .= "LIMIT ".($config::items_per_page + 1)." OFFSET ".($P{'page'} * $config::items_per_page); # $query = "SELECT artsms_id FROM top_tbl "; # $query .= "WHERE brand_id=4 and service_id=10 "; # $query .= "ORDER BY position "; # $query .= "LIMIT ".($config::items_per_page + 1)." OFFSET ".($P{'page'} * $config::items_per_page); # $q = $conn->prepare($query); # $q->execute(); # $query = ""; # for($i=0;$i<$q->rows();$i++) { # @arr = $q->fetchrow_array(); # $query .= "(SELECT artsms_id, desc_rus, desc_az, perf_rus, perf_az FROM data_tbl WHERE artsms_id=".$arr[0].")"; # if($i+1<$q->rows()) { # $query .= " UNION ALL "; # } # } # $q->finish(); $query = "SELECT artsms_id, desc_rus, desc_az, perf_rus, perf_az FROM data_tbl "; $query .= "WHERE service_id='10' ORDER BY top_count "; $query .= "LIMIT ".($config::items_per_page + 1)." OFFSET ".($P{'page'} * $config::items_per_page); } else { $q = $conn->prepare("SELECT desc_rus, desc_az FROM categories_tbl WHERE brand_id='4' and service_id='10' and cat_mask='".$P{'cat'}."'"); $q->execute(); @arr = $q->fetchrow_array(); $cat_name_ru = @arr[0]; $cat_name_az = @arr[1]; $q->finish(); if($P{'letter'} eq "") { $query = "SELECT artsms_id, desc_rus, desc_az, perf_rus, perf_az FROM data_tbl "; $query .= "WHERE brand_id=4 and service_id=10 "; $query .= "AND cat_bitset & int8('".$twon[$P{'cat'}]."') <> '0' "; $query .= "ORDER BY top_count, date DESC "; $query .= "LIMIT ".($config::items_per_page + 1)." OFFSET ".($P{'page'} * $config::items_per_page); } else { $query = "SELECT artsms_id, desc_rus, desc_az, perf_rus, perf_az FROM data_tbl "; $query .= "WHERE brand_id=4 and service_id=10 "; $query .= "AND cat_bitset & int8('".$twon[$P{'cat'}]."') <> '0' "; $query .= "AND (substring(toLatinBegin(desc_rus) from 1 for 1) = '".chr($P{'letter'})."' "; $query .= "OR substring(toLatinBegin(perf_rus) from 1 for 1) = '".chr($P{'letter'})."') "; $query .= "ORDER BY top_count, azeri_to_sort(perf_rus), azeri_to_sort(desc_rus) "; $query .= "LIMIT ".($config::items_per_page + 1)." OFFSET ".($P{'page'} * $config::items_per_page); } } print $config::http_head; print ""; print ""; print "

"; print "".config::lang_proc($P{'lang'}, $cat_name_ru, $cat_name_az)."
"; print "
"; if($P{'cat'} ne "new" && $P{'cat'} ne "top") { print "".config::lang_proc($P{'lang'}, " - По Буквам", " - Hərflər")."
"; print "
"; } $q = $conn->prepare($query); $q->execute(); if($q->rows() > $config::items_per_page) { $is_continued = "1"; $items_count = $config::items_per_page; } else { $items_count = $q->rows(); } for($i=0;$i<$items_count;$i++) { @arr = $q->fetchrow_array(); $desc_ru = $arr[1]; if($arr[3] ne "") { $desc_ru = $arr[3]." - ".$desc_ru; } $desc_az = $arr[2]; if($arr[4] ne "") { $desc_az = $arr[4]." - ".$desc_az; } print "".config::lang_proc($P{'lang'}, $desc_ru, $desc_az)."
"; } $q->finish(); if($is_continued > 0 || $P{'page'} > 0) { print "
"; if($is_continued > 0) { print "".config::lang_proc($P{'lang'}, "Далее >>", "Sonrakı >>")."
"; } if($P{'page'} > 0) { print "".config::lang_proc($P{'lang'}, "<< Назад", "<< Əvvəlki")."
"; } } print "
"; print "".config::lang_proc($P{'lang'}, " - Помощь", " - Kömək")."
"; print "".config::lang_proc($P{'lang'}, " - Цена", " - Qiymət")."
"; print "
"; print "".config::lang_proc($P{'lang'}, "[ Главная ]", "[ Ana Səhifə ]")."
"; print "

"; print "
"; print "
"; $conn->disconnect();