[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Постраничная навигация с поиском
mnbv
Как сделать чтобы при поиске навигация работала правильно
т.е поиск не пропадал
1.2.3 последняя

$slovo = 'dom';
$result8 = mysql_query("SELECT str FROM opt", $db);
$myrow8 = mysql_fetch_array($result8);
$num = $myrow8["str"];
// Извлекаем из URL текущую страницу
@$page = $_GET['page'];
// Определяем общее число сообщений в базе данных
$result00 = mysql_query("SELECT COUNT(*) FROM data WHERE secret=0 AND cat='$cat' AND `text` like '%$search%' AND `mini_img` Like '_______________%'");
$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


if (isset($_POST['mini'])){//---------------------------------------Чекбокс
//if($_POST['mini'] == true) {

$result = mysql_query("SELECT id,tit FROM data WHERE
`tex` like '%
$search%' AND `mini`=$slovo AND cat='$cat' ORDER BY id desc LIMIT $start, $num ",$db);//--------------------------------------------------Этот поиск

} else
{
$result = mysql_query("SELECT id,tit FROM data WHERE `text` like '%$search%' AND cat='$cat' ORDER BY id desc LIMIT $start, $num ",$db);
}


while ($myrow = mysql_fetch_array($result));
// Проверяем нужны ли стрелки назад
if ($page != 1) $pervpage = '<a href=vie.php?cat='.$cat.'&page=1>Первая</a> | <a href=vie.php?cat='.$cat.'&page='. ($page - 1) .'>Предыдущая</a> | ';

if ($page != $total) $nextpage = ' | <a href=vie.php?cat='.$cat.'&page='. ($page + 1) .'>Следующая</a> | <a href=vie.php?cat='.$cat.'&page=' .$total. '>Последняя</a>';

--//----
--//----

Т.е. поиск с запросом работает только на одну страницу
на второй и последующих не выполняется (Чекбокс отключается )



Спустя 11 минут, 50 секунд (24.05.2011 - 18:29) T1grOK написал(а):
Хранить параметры поиска в сессии или куках.

Спустя 6 минут, 3 секунды (24.05.2011 - 18:36) mnbv написал(а):
есть два запроса 1 и 2
2-ой запрос выводит работает через if
a 1-й запрос только на одну страницу т.е. чекбокс на все страницы не работает (не сохраняет поисковый запрос)???
без навигации все работает (запрос выполняется)

Спустя 4 минуты, 53 секунды (24.05.2011 - 18:40) Игорь_Vasinsky написал(а):
передавай $search в GET при составлении ссылок на странице

Спустя 25 минут, 3 секунды (24.05.2011 - 19:05) mnbv написал(а):
if (isset($_GET['cat'])) {$cat = $_GET['cat']; }
if (!isset($cat)) {$cat = 1;}

if($page - 1 > 0) $page1left = '<a href=vie.php?cat='.$cat.'&page='. ($page - 1) .'>'. ($page - 1) .'</a> | ';

По ответу Что изменить нужно ???
передавай $search в GET при составлении ссылок на странице

пример есть

Спустя 9 минут, 59 секунд (24.05.2011 - 19:15) Игорь_Vasinsky написал(а):
чтоб мне еньше те объяснять: сохраняй $search в сессии.
1. Вначале страницы вывода результатов, до всякого вывода (по возможности - 1й строкой) пишешь
session_start();

После того как объявляешь в переменную $search
$_SESSION['search'] = $search; // если $seach объявлен успешно
Вот. теперь пока сессия работает у тя на любой странице есть поисковый запрос, который хранится в сессии.


Спустя 38 минут, 6 секунд (24.05.2011 - 19:54) mnbv написал(а):
Вставил
но запрос действует так же выводит только на 1-й странице на другие не распространяется

а как быть с чекбокс (если его отметишь на все страницы запрос должен работать )???

Спустя 3 минуты, 15 секунд (24.05.2011 - 19:57) mnbv написал(а):
т.е запрос на количество и запрос на вывод нужных результатов в памяти не сохраняется ?

Спустя 11 минут, 11 секунд (24.05.2011 - 20:08) Игорь_Vasinsky написал(а):
может ты нам покажешь - что написал - куда вставил

Спустя 13 минут, 28 секунд (24.05.2011 - 20:21) mnbv написал(а):
session_start(); в начале страницы
а $_SESSION['search'] = $search; после этих строк

$search = trim($search);
$search = stripslashes($search);
$search = htmlspecialchars($search);
$_SESSION['search'] = $search;

Спустя 10 минут, 20 секунд (24.05.2011 - 20:32) Игорь_Vasinsky написал(а):
:D а теперь добавь ещё раз:
$search = $_SESSION['search'];

Спустя 4 минуты, 46 секунд (24.05.2011 - 20:37) mnbv написал(а):
$session = $_SESSION['search']; попробовал не помогло

т.е. выводит со второй страницы данные такие же как и без нажатии чекбокс
бут то выполняется со второй страницы (запрос if № 2-й)данные выводит те которые не должен вывести (`mini`=$slovo) а он выводит как 2-й запрос?

Спустя 5 минут, 10 секунд (24.05.2011 - 20:42) Игорь_Vasinsky написал(а):
стой blink.gif я это в начале проглядел:
Цитата
на второй и последующих не выполняется (Чекбокс отключается )

это что такое ? это мы за этим охотимся или за тем что поисковый запрос при пагинаторе теряется ???

Спустя 2 минуты, 11 секунд (24.05.2011 - 20:44) mnbv написал(а):
на первую же страницу выводит как надо ?

Спустя 3 минуты, 55 секунд (24.05.2011 - 20:48) mnbv написал(а):
смысл таков без нажатия на чекбокс работает 2 -запрос
нажали на чекбокс работает 1 -запрос
Вот и вся охота.

Спустя 8 минут, 3 секунды (24.05.2011 - 20:56) Игорь_Vasinsky написал(а):
SQL запросы?
или значения из полей формы. скрин формы давай, вообще запутал.

Спустя 4 минуты, 38 секунд (24.05.2011 - 21:00) mnbv написал(а):
Форма
<form action="vie.php" method="post" name="form_s">
<input name="search" type="text" size="65" maxlength="30" />
<input class="search_b1" name="submit_s1" type="submit" value="Искать" />
<input type="checkbox" name="mini" id="checkbox"/>
<label for="checkbox"></label>
</form>

Без навигации все работает

Спустя 9 минут, 19 секунд (24.05.2011 - 21:10) Игорь_Vasinsky написал(а):
:D :D :D
на vie.php где нибудь До обработчика формы впиши:

$checked = isset($_POST['mini_img']) ? "checked='checked'" : null;


а форма вот (если он в голом html):
<form action="vie.php" method="post" name="form_s">
<input
name="search" type="text" size="85" maxlength="40" />
<input
class="search_b" name="submit_s" type="submit" value="Искать" />
<input
type="checkbox" name="mini_img" <?php echo $checked; ?> id="checkbox"/>
<label
for="checkbox"></label>
</form>

Спустя 9 минут, 35 секунд (24.05.2011 - 21:19) mnbv написал(а):
<input type="checkbox" name="mini_img" <?php echo $checked; ?> id="checkbox"/> ошибка в строке Notice: Undefined variable:

Спустя 9 минут, 55 секунд (24.05.2011 - 21:29) mnbv написал(а):
Ошибок нет но запрос с навигацией не выполнился
checkbox нажимаю опять только на 1-й странце выводит нужную информацию
Здесь на форуме кто то уже задавал такой вопрос поиск с навигцией надо посмотреть

Спустя 6 минут, 57 секунд (24.05.2011 - 21:36) Игорь_Vasinsky написал(а):
ну опечатался я.... вместо $checked - $cheked объявлял... исправил в пред. посте.

$checked = isset($_POST['mini_img']) ? "checked='checked'" : null;


Цитата
Ошибок нет но запрос с навигацией не выполнился
checkbox нажимаю опять только на 1-й странце выводит нужную информацию
Здесь на форуме кто то уже задавал такой вопрос поиск с навигцией надо посмотреть

:D :D :D
вот ты шустрый. - это только трабл с чекбоксом решает, а поисковый запрос при пагинаторе это ёщё.


Спустя 8 минут (24.05.2011 - 21:44) mnbv написал(а):
Ошибок нет но запрос с навигацией не выполнился
checkbox нажимаю опять только на 1-й странце выводит нужную информацию

тоже 2 запрос выводит со 2 и даллее страницы

Спустя 1 минута, 56 секунд (24.05.2011 - 21:46) Игорь_Vasinsky написал(а):
Цитата
Ошибок нет но запрос с навигацией не выполнился
checkbox нажимаю опять только на 1-й странце выводит нужную информацию

тоже 1 запрос выводит со 2 и даллее страницы

Да это только положение чекбокса запоминает (отмечеили нет). У тя что за навигаия???? всё через одну страниу делает? дописываешь page=...?

Вот как со страницы поисковый запрос передавать - давай вместе разбираться.
Самый известный вариант - который позволяет хранить данные при переходе со страниы на страницы какой?

Спустя 7 минут, 30 секунд (24.05.2011 - 21:54) mnbv написал(а):
$slovo = 'dom';
$result8 = mysql_query("SELECT str FROM opt", $db);
$myrow8 = mysql_fetch_array($result8);
$num = $myrow8["str"];
// Извлекаем из URL текущую страницу
@$page = $_GET['page'];
// Определяем общее число сообщений в базе данных
$result00 = mysql_query("SELECT COUNT(*) FROM data WHERE secret=0 AND cat='$cat' AND `text` like '%$search%'");
$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
Вот навигация
Считает все записи но не в поиске получается ?

Спустя 13 минут, 27 секунд (24.05.2011 - 22:07) Игорь_Vasinsky написал(а):
Цитата
Вот как со страницы поисковый запрос передавать - давай вместе разбираться.
Самый известный вариант - который позволяет хранить данные при переходе со страниы на страницы какой (мне известно или скажу популярно 4 варианта - но тебе удобен 1-2)? 

Спустя 18 часов, 8 минут, 12 секунд (25.05.2011 - 16:15) mnbv написал(а):
Что за варианты ?
То есть нужно количество записей в запросе поделить на стрницы
при поиске теряется запрос

Спустя 5 часов, 19 минут, 5 секунд (25.05.2011 - 21:34) mnbv написал(а):
В этой строчке зад-ся кол для поиска ?
$result00 = mysql_query("SELECT COUNT(*) FROM data WHERE secret=0 AND cat='$cat' AND `text` like '%$search%'");

нужно подсчитать кол-во в запросе и поделить на страницы
что нужно добавить?
Быстрый ответ:

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