Salikhoff
Well-Known Member
- Регистрация
- 04.04.2011
- Сообщения
- 88
вот код
пожалуйста помогите его максимально почистить и отредактировать где листалка страниц не предлагать сделать циклами, т.к. я не умею, но если сделаете буду благодарен!
в общем еще откопал косяк, считает не правильно, по факту один сайт в БД а выводит 2, переменная $counter
Код:
<?php
require_once ('main/config.php');
if (!isset($_GET['catalog'])) {
header('Location: /');
exit;
}
else {
$request = trim ($_GET['catalog']);
$request = preg_replace ('|[^a-zA-Zа-яА-Я]|siu', '', $request);
$section = isset ($_GET['category']) ? trim ($_GET['category']) : '';
if (strlen ($request)>2){
if (isset ($_GET['category'])){
$counter = @mysql_query("SELECT COUNT(*) FROM `catalog` WHERE ((`keywords` LIKE '%$request%') OR (`title` LIKE '%$request%') OR (`description` LIKE '%$request%') OR (`url` LIKE '%$request%')) AND `category`='$category' ORDER BY `id` ASC");
}
else {
$counter = @mysql_query("SELECT COUNT(*) FROM `catalog` WHERE ((`keywords` LIKE '%$request%') OR (`title` LIKE '%$request%') OR (`description` LIKE '%$request%') OR (`url` LIKE '%$request%')) ORDER BY `id` ASC");
}
$counter = mysql_result($counter, 0);
$total = (($counter-1)/10)+1;
$total = round($total);
$list = isset ($_GET['list']) ? (int)$_GET['list'] : '';
if ($list == 0 or $list < 0)
$list = 1;
if ($list > $total)
$list = $total;
$start = $list*10-10;
if ($start < 0){$start = 0;}
if (isset ($_GET['category'])) {
$result = @mysql_query("SELECT * FROM `catalog` WHERE ((`keywords` LIKE '%$request%') OR (`title` LIKE '%$request%') OR (`description` LIKE '$request%') OR (`url` LIKE '%$request%')) AND `category`='$category' ORDER BY `id` ASC LIMIT $start, 10");
}
else {
$result = @mysql_query("SELECT * FROM `catalog` WHERE ((`keywords` LIKE '%$request%') OR (`title` LIKE '%$request%') OR (`description` LIKE '$request%') OR (`url` LIKE '%$request%')) ORDER BY `id` ASC LIMIT $start, 10");
}
if (!$result){exit(mysql_error());}
$n = 1 + $start;
if ($counter > 0) {
function counter($counter, $reply)
{
$cases = array (2, 0, 1, 1, 1, 2);
return $counter."</strong> ".$reply[ ($counter%100>4 && $counter%100<20)? 2 : $cases[min($counter%10, 5)] ];
}
echo ("<strong class='font'>Найдено <strong style='color:#999999'>".counter($counter, array('ответ', 'ответа', 'ответов'))." по вашему запросу.</strong>");
while ($row = mysql_fetch_array($result)){
echo ("<div id='block'>");
echo ("<div class='number'>".$n."</div>");
echo ("<div id='result'>");
echo ("<a href=".$row['url']." target='_blank' class='title'>".$row['title']."</a>");
echo ("<div class='content_result'>".$row['description']."</div>");
echo ("<a href=".$row['url']." target='_blank' class='url'>".$row['url']."</a>");
echo ("</div></div>");
$n ++;
}
if ($total > 1){Error_Reporting(E_ALL & ~E_NOTICE);
if (isset($_GET['section'])) {
if ($list!=1) $page1="<div class=arrows>←</div> <a href='search.php?category=".$_GET['category']."&list=".($list - 1)."&catalog=".$request."'>влево</a> | ";
if ($list!=$total) $npage=" | <a href='search.php?category=".$_GET['category']."&list=".($list + 1)."&catalog=".$request."'>вправо</a> <div class=arrows>→</div>";
if ($list-3>0) $p3l=" <a href='search.php?category=".$_GET['category']."&list=".($list - 3)."&catalog=".$request."'>".($list-3)."</a> | ";
if ($list-2>0) $p2l=" <a href='search.php?category=".$_GET['category']."&list=".($list - 2)."&catalog=".$request."'>".($list-2)."</a> | ";
if ($list-1>0) $p1l=" <a href='search.php?category=".$_GET['category']."&list=".($list - 1)."&catalog=".$request."'>".($list-1)."</a> | ";
if ($list+3<=$total) $p3r=" | <a href='search.php?category=".$_GET['category']."&list=".($list + 3)."&catalog=".$request."'>".($list+3)."</a>";
if ($list+2<=$total) $p2r=" | <a href='search.php?category=".$_GET['category']."&list=".($list + 2)."&catalog=".$request."'>".($list+2)."</a>";
if ($list+1<=$total) $p1r=" | <a href='search.php?category=".$_GET['category']."&list=".($list + 1)."&catalog=".$request."'>".($list+1)."</a>";
}
else {
if ($list!=1) $page1='<div class=arrows>←</div> <a href="search.php?list='.($list - 1).'&catalog='.$request.'">влево</a> | ';
if ($list!=$total) $npage=' | <a href="search.php?list='.($list + 1).'&catalog='.$request.'">вправо</a> <div class=arrows>→</div>';
if ($list-3>0) $p3l=' <a href="search.php?list='.($list - 3).'&catalog='.$request.'">'.($list-3).'</a> | ';
if ($list-2>0) $p2l=' <a href="search.php?list='.($list - 2).'&catalog='.$request.'">'.($list-2).'</a> | ';
if ($list-1>0) $p1l=' <a href="search.php?list='.($list - 1).'&catalog='.$request.'">'.($list-1).'</a> | ';
if ($list+3<=$total) $p3r=' | <a href="search.php?list='.($list + 1).'&catalog='.$request.'">'.($list+3).'</a>';
if ($list+2<=$total) $p2r=' | <a href="search.php?list='.($list + 2).'&catalog='.$request.'">'.($list+2).'</a>';
if ($list+1<=$total) $p1r=' | <a href="search.php?list='.($list + 1).'&catalog='.$request.'">'.($list+1).'</a>';
}
echo ("<div class='list' align='center'>");
echo ($page1.$p3l.$p2l.$p1l.'<div class="this">'.$list.'</div>'.$p1r.$p2r.$p3r.$npage);
echo ("</div>");
}
}
else {
echo ("<strong class='error'>К сожалению по вашему запросу, в этой категории ничего не найдено...</strong>");
}
}
else {
echo ("<strong class='error'>Задан пустой поисковый запрос или строка поиска содержит менее 3 символов...</strong>");
}
}
?>
в общем еще откопал косяк, считает не правильно, по факту один сайт в БД а выводит 2, переменная $counter