Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Постраничная навигация
 
 автор: Ida   (06.04.2005 в 09:39)   письмо автору
 
 

Здравствуйте!
Вопрос:
Есть база MySQL, файл forma.php, содержащий форму для задания условий поиска по базе. После нажатия клавиши Submit управление передается в файл
bazasort.php. Этот файл формирует запрос и осуществляет выборку из базы данных:

$query = "SELECT * FROM main ".$where." ORDER BY area, rooms, street";
$result = mysql_query($query);


Далее осуществляется вывод всех записей в цикле:

while ($f = mysql_fetch_array($result))


Необходимо выводить данные по 20 записей на страницу.
Подсчитываю сколько необходимо страниц для каждого конкретного запроса:

$num_rows = mysql_num_rows($result);
$num_rows=(int)($num_rows/20)+1;

Формирую необходимое количество ссылок.
Каким образом сделать перезагрузку страницы, чтобы она выводила данные скажем с 40 по 60 при нажатии соответственно ссылки с номером 3.

Заранее спасибо.

   
 
 автор: Shorr Kan   (06.04.2005 в 10:28)   письмо автору
 
   для: Ida   (06.04.2005 в 09:39)
 


$query = "SELECT * FROM main ".$where." ORDER BY area, rooms, street LIMIT $x,20"; 


Имея такой запрос - вам нужно лишь передавать $x (стартовая позиция). Это можно делать при помощи той же ссылки на файл bazasort.php:

bazasort.php?x=0
bazasort.php?x=20
bazasort.php?x=100

Разумеется, потом лучше принять данные методом GET, и проверить их на хорошесть:


if(isset($_GET['x']) and is_numeric($_GET['x'])==true){$x=$_GET['x'];}else{$x=0;}


Но это лично мой метод, и верен ли он по всем параметрам - жизнь пока не показала.

   
 
 автор: coloboc66   (06.04.2005 в 10:37)   письмо автору
 
   для: Shorr Kan   (06.04.2005 в 10:28)
 

Смотри здесь: http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=1282

   
 
 автор: Ida   (06.04.2005 в 13:49)   письмо автору
 
   для: coloboc66   (06.04.2005 в 10:37)
 

Спасибо, все получилось.

И еще один вопрос. Каким образом можно узнать какой метод использовался GET или POST?

   
 
 автор: cheops   (06.04.2005 в 22:51)   письмо автору
 
   для: Ida   (06.04.2005 в 13:49)
 

Можно посмотреть присутствуют ли переданные параметры в суперглобальном массиве $_GET или $_POST:
<?php
  
if(isset($_GET['id'])) echo "Данные переданы методом GET";
  if(isset(
$_POST['id'])) echo "Данные переданы методом POST";
?>

   
 
 автор: cheops   (06.04.2005 в 11:27)   письмо автору
 
   для: Ida   (06.04.2005 в 09:39)
 

Так как вопрос о постраничной навигации возникает достаточно часто, Artem S. написал специальную статью, которая помещена в разделе "Статьи о PHP" http://www.softtime.ru/info/articlephp.php?id_article=33, кроме того, вы можете посмотреть тему по ссылке http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=3044, где приводится список тем с различными вариантами постраничной навигации.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования