[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Постраничная навигация в поиске
Sprinter_One
Всем доброго времени суток. Подскажите пожалуйста, как сделать постраничную навигацию для поиска, чтобы после запроса на одной странице не выдавалась целая лента ответов. Есть такая навигация:


<?php
echo $myrow ['text'];
$result77 = mysql_query("SELECT str FROM options", $db);
$myrow77 = mysql_fetch_array($result77);
$num = $myrow77["str"];
// Извлекаем из URL текущую страницу
@$page = $_GET['page'];
// Определяем общее число сообщений в базе данных
$result00 = mysql_query("SELECT COUNT(*) FROM products");
$temp = mysql_fetch_array($result00);
$posts = $temp[0];
// Находим общее число страниц
$total = (($posts - 1) / $num) + 1;
$total = intval($total);
// Определяем начало сообщений для текущей страницы
$page = intval($page);
// Если значение $page меньше единицы или отрицательно
// переходим на первую страницу
// А если слишком большое, то переходим на последнюю

if(empty($page) or $page < 0) $page = 1;
if($page > $total) $page = $total;
// Вычисляем начиная с какого номера
// следует выводить сообщения

$start = $page * $num - $num;
// Выбираем $num сообщений начиная с номера $start
$result = mysql_query("SELECT id,title,description FROM products ORDER BY id LIMIT $start, $num", $db);
$myrow = mysql_fetch_array ($result);
do {
printf ("<table align = 'center' class='products'>
<tr>
<td><p class='products_name'><a href = 'view_products.php?id=%s'>%s</a></p></td>
</tr>
<tr>
<td>%s</td>
</tr>
</table><br><br>"
, $myrow["id"], $myrow["title"], $myrow["description"]);
}
while ($myrow = mysql_fetch_array ($result));
// Проверяем нужны ли стрелки назад
if ($page != 1) $pervpage = '<a href= products.php?page=1>Первая</a>
<a href= products.php?page='
. ($page - 1) .'>Предыдущая</a> ';
// Проверяем нужны ли стрелки вперед
if ($page != $total) $nextpage = ' <a href= products.php?page='. ($page + 1) .'>Следующая</a>
<a href= products.php?page='
.$total. '>Последняя</a>';
// Находим две ближайшие станицы с обоих краев, если они есть
if($page - 2 > 0) $page2left = ' <a href= products.php?page='. ($page - 2) .'>'. ($page - 2) .'</a> | ';
if($page - 1 > 0) $page1left = '<a href= products.php?page='. ($page - 1) .'>'. ($page - 1) .'</a> | ';
if($page + 2 <= $total) $page2right = ' | <a href= products.php?page='. ($page + 2) .'>'. ($page + 2) .'</a>';
if($page + 1 <= $total) $page1right = ' | <a href= products.php?page='. ($page + 1) .'>'. ($page + 1) .'</a>';
// Вывод меню
if ($total > 1)
{
Error_Reporting(E_ALL & ~E_NOTICE);
echo "<div class=\"pstrnav\">";
echo $pervpage.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$nextpage;
echo "</div>";
}
?>


Она отлично работает по разделам....а вот в поиске у меня возникли проблемы..вот собственно код поиска (сразу говорю, что таких таблиц как "акустомагнитные противокражные рамки" и "автоматические ворота" около 20):

<?php
include ("blocks/bd.php"); /* СОЕДИНЯЕМСЯ С БД */
if (isset($_POST['submit_s'])) {$submit_s = $_POST['submit_s'];}
if (isset($_POST['search'])) {$search = $_POST['search'];}
if (isset ($submit_s))
{
if (empty($search) or strlen($search) < 4)
{
exit ("<p>Поисковый запрос не введён, либо он меньше 4-х символов</p>");
}
$search = trim ($search);
$search = stripslashes ($search);
$search = htmlspecialchars ($search);
}
else
{
exit ("<p>Вы обратились к файлу без необходимых параметров</p>");
}
?>

<p><h3><span
style="color: #C03">Найденая информация по запросу: <?php echo "'$search'"; ?></p></span></h3>

<?php

/*ВЫВОДИМ ИНФОРМАЦИЮ ИЗ ТАБЛИЦЫ "АКУСТОМАГНИТНЫЕ ПРОТИВОКРАЖНЫЕ РАМКИ"*/
$result = mysql_query ("SELECT id, title, description FROM akustomagnit_antikrazh_ramki WHERE text LIKE '%$search%'" , $db);
if (!result)
{
echo "<p>Запрос не введён, либо он менее 4-х символов</p>";
exit (mysql_error());
}
if (mysql_num_rows($result) > 0)
{
$myrow = mysql_fetch_array($result);
do
{
printf ("<table align = 'center' class='akustomagnit_antikrazh_ramki'>
<tr>
<td><p class='akustomagnit_antikrazh_ramki_name'><a href = 'view_akustomagnit_antikrazh_ramki.php?id=%s'>%s</a></p></td>
</tr>
<tr>
<td>%s</td>
</tr>
</table><br><br>"
, $myrow["id"], $myrow["title"], $myrow["description"]);
}
while ($myrow = mysql_fetch_array ($result));
}
else
{
echo "<p>Информация по вашему запросу на сайте не найдена!</p>";
exit ();
}
/*КОНЕЦ ВЫВОДА ИНФОРМАЦИИ ИЗ ТАБЛИЦЫ "АКУСТОМАГНИТНЫЕ ПРОТИВОКРАЖНЫЕ РАМКИ"*/
?>

<?php

/*ВЫВОДИМ ИНФОРМАЦИЮ ИЗ ТАБЛИЦЫ "АВТОМАТИЧЕСКИЕ ВОРОТА"*/
$result = mysql_query ("SELECT id, title, description FROM avt_vorota WHERE text LIKE '%$search%'" , $db);
if (!result)
{
echo "<p>Запрос не введён, либо он менее 4-х символов</p>";
exit (mysql_error());
}
if (mysql_num_rows($result) > 0)
{
$myrow = mysql_fetch_array($result);
do
{
printf ("<table align = 'center' class='avt_vorota'>
<tr>
<td><p class='avt_vorota_name'><a href = 'view_avt_vorota.php?id=%s'>%s</a></p></td>
</tr>
<tr>
<td>%s</td>
</tr>
</table><br><br>"
, $myrow["id"], $myrow["title"], $myrow["description"]);
}
while ($myrow = mysql_fetch_array ($result));
}
else
{
echo "<p>Информация по вашему запросу на сайте не найдена!</p>";
exit ();
}
/*КОНЕЦ ВЫВОДА ИНФОРМАЦИИ ИЗ ТАБЛИЦЫ "АВТОМАТИЧЕСКИЕ ВОРОТА"*/
?>


На всякий случай прикрепляю файл с кодом поиска.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.