|
|
|
|
|
для: 7han
(03.01.2009 в 15:32)
| | какими параметрами GET-запроса это передается?
Собственно, можно решать задачу абстрактно.
преобразовать все элементы массива GET кроме page в строку параметров, и дописывать её к ссылке.
<?
$p = '';
foreach($_GET as $k =>$v)
if($k != 'page')
if(is_array($v))
foreach($v as $k1 =>$v1)
$p .= '&' . $k . '[' .$k1. ']=' . rawurlencode($v1);
else
$p .= '&' . $k . '=' . rawurlencode($v);
$p = htmlspecialchars($p);
//........
for($n = 1; $n < $num; $n++)
{
//........
echo "<a href=\"?page=$n$p\" > $n </a>"
//........
}
|
| |
|
|
|
|
|
|
|
для: Trianon
(03.01.2009 в 14:13)
| | Вопрос открыт...
Может подкинете еще вариант с GET ? | |
|
|
|
|
|
|
|
для: Trianon
(03.01.2009 в 14:12)
| | При том варианте постраничной навигации, который используется, при каждом обращении формируется новый запрос, Вам же это известно лучше меня. Привязывать ключевые слова ко всем ссылкам навигации мне кажется гораздо сложнее, чем один раз записать в сессию... А ещё придется всё это кодировать и раскодировать. Может я чего то не уловил? | |
|
|
|
|
|
|
|
для: Trianon
(03.01.2009 в 14:13)
| | Ну к примеру, есть просто выборка диапазона цен. То есть в запросе выбираются:
price>'100' AND price1<'1000'.
Как пролистать диапазон выбранных значений?
А то мне с сессиями сложновато чего-то. | |
|
|
|
|
|
|
|
для: 7han
(03.01.2009 в 08:21)
| | Нужно еще знать набор параметров поиска. | |
|
|
|
|
|
|
|
для: Николай2357
(03.01.2009 в 12:05)
| | >Если использовать одну функцию для постраничной навигации общего вывода и вывода результатов поиска, боюсь одного добавления праметров в GET может оказаться недостаточным, либо довольно сложным.
Вообще-то, это стандартная практика. В чем сложности-то? | |
|
|
|
|
|
|
|
для: 7han
(03.01.2009 в 08:21)
| | Если использовать одну функцию для постраничной навигации общего вывода и вывода результатов поиска, боюсь одного добавления праметров в GET может оказаться недостаточным, либо довольно сложным. Проще всё таки использовать сессию. Примерно так:
<?php
$_SESSION['where'] = isset($_POST['search'])?
"WHERE `text` LIKE '%".mysql_escape_string($_POST['search'])."%'":$_SESSION['where'];
$result = mysql_query("SELECT COUNT(*) AS cnt
FROM `table` ".$_SESSION['where']." ")or die ('Error: 1' . mysql_error());
$posts = mysql_result($result,0,'cnt');
if(!$page&&($posts-$num) > $num)
.
.
.
$result = mysql_query("SELECT `text`
FROM `table` ".$_SESSION['where']." .... LIMIT ".$start.", ".$num."")
or die ('Error: 2' . mysql_error());
| Только при возврате на общий вывод нужно обнулить $_SESSION['where'].
Код, который я привел в качестве примера, просто иллюстрация принципа и нуждается в доработке. | |
|
|
|
|
|
|
|
для: Trianon
(03.01.2009 в 07:25)
| | Подскажите на примере, пожалуйста, а то не могу сообразить.
Набор ссылок вот такой:
if ($page != 1) $pervpage = ' <a href= ./?page=1><<</a> ';
if ($page != $total) $nextpage = ' <a href= ./?page='.$total.'>>></a> ';
if($page - 2 > 0) $page2left = ' <a href= ./?page='. ($page - 2) .'>'. ($page - 2) .'</a> |';
if($page - 1 > 0) $page1left = '<a href= ./?page='. ($page - 1) .'>'. ($page - 1) .'</a> | ';
if($page + 2 <= $total) $page2right = '| <a href= ./?page='. ($page + 2) .'>'. ($page + 2) .'</a>';
if($page + 1 <= $total) $page1right = ' | <a href= ./?page='. ($page + 1) .'>'. ($page + 1) .'</a>'; | |
|
|
|
|
|
|
|
для: 7han
(03.01.2009 в 06:28)
| | проблема в том, что параметры поиска из формы на первую страницу Вы передаете, а через ссылки навигации - нет.
Добавьте параметры в ссылки навигации - всё заработает. | |
|
|
|
|
|
|
|
для: 7han
(03.01.2009 в 06:28)
| | Как вариант можно условие поиска записать в сессию. | |
|
|
|
|