Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: постраничный вывод информации из базы

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Doberman
Отправлено: 08 Февраля, 2011 - 23:16:08
Post Id



Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Янв. 2011  


Помог: 0 раз(а)




Допустим есть в базе 100 записей .
Нужно что бы выводились по 10 на странице и соответственно подставлялся номер страницы и вывод начинался с последних 10-ти
 
 Top
OrmaJever Модератор
Отправлено: 08 Февраля, 2011 - 23:33:07
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Допустим есть сайт php.su.
На главной есть поиск и им можно воспользоватся!
http://php.su/articles/?cat=exam...les&page=062


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
XelaNimed
Отправлено: 08 Февраля, 2011 - 23:36:09
Post Id


Частый гость


Покинул форум
Сообщений всего: 136
Дата рег-ции: Сент. 2009  


Помог: 0 раз(а)




CODE (SQL):
скопировать код в буфер обмена
  1. "SELECT * FROM `table` ORDER BY `id` DESC LIMIT $start , $proPage "

$start - начинается с нуля
$proPage - сколько записей на страницу
Для выбора следующей страницы $start = $proPage * номер страницы


P.S.: тема уже обсуждалась много раз. Используйте поиск.
 
 Top
Doberman
Отправлено: 09 Февраля, 2011 - 17:55:16
Post Id



Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Янв. 2011  


Помог: 0 раз(а)




OrmaJever пишет:
Допустим есть сайт php.su.
На главной есть поиск и им можно воспользоватся!
http://php.su/articles/?cat=exam...les&page=062

все что там написано перепробовал десять раз все равно выскакивают ошибки
(Добавление)
XelaNimed пишет:
CODE (SQL):
скопировать код в буфер обмена
  1. "SELECT * FROM `table` ORDER BY `id` DESC LIMIT $start , $proPage "

$start - начинается с нуля
$proPage - сколько записей на страницу
Для выбора следующей страницы $start = $proPage * номер страницы


P.S.: тема уже обсуждалась много раз. Используйте поиск.


ПИПЕЦ я ЕБА...СЯ целую неделю , а ответ в добавке в выборку оператора LIMIT и назначении двух переменных - простой ответ , а мне такие коды предлагали ...........
Дружище продолжи пожалуйста с выводом ссылок на страничку .
 
 Top
DiosPA
Отправлено: 09 Февраля, 2011 - 18:40:34
Post Id



Частый гость


Покинул форум
Сообщений всего: 180
Дата рег-ции: Янв. 2011  
Откуда: Россия


Помог: 2 раз(а)




Doberman
всё предельно просто Улыбка

Если вы
Цитата:
а мне такие коды предлагали ...........

не хотите большой код делайте сами Улыбка

1 считаем количество записей (всего)
2 делим их на то количество которое находится на 1 странице
3 результат деления это будет количество страниц
4 выводим в цикле [1] [2] [3] (ссылки с GET $start $proPage...)
5 делаем сам обрабтчик этого запроса (а если $start отсутствует то начинаем с нуля)

всё просто как 2 на 2 Улыбка также можно ORDER BY DESC использовать чтобы данные выводить в обратном порядке ))
Дерзайте Улыбка
 
 Top
Doberman
Отправлено: 10 Февраля, 2011 - 01:27:04
Post Id



Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Янв. 2011  


Помог: 0 раз(а)




Цитата:


всё просто как 2 на 2 Улыбка также можно ORDER BY DESC использовать чтобы данные выводить в обратном порядке ))
Дерзайте Улыбка

пробовал я но почему то куча ошибок выпадает . Вот еще что интересует - в запросе я выбираю кол-во записей , а для обычной выборки нужно другой запрос писать ? или можно как то все в одном обьединить ?на счет кода , то прошу прощения , просто так долго искал ответ . Напишите пожалуйста примерчик , как это выглядит . PLIZZ...
 
 Top
Okula
Отправлено: 10 Февраля, 2011 - 01:35:41
Post Id



Участник


Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010  


Помог: 42 раз(а)




Вот мой класс постраничной навигации, писал его здесь уже на форуме
PHP:
скопировать код в буфер обмена
  1. class Navigation {
  2.  
  3. /* Автор класса Okula (Александр Третьяков)
  4. Немного коментариев:
  5. $page это номер страницы переданной из $_GET параметра, предварительно отфильтрованна
  6. $pnumber это число элементов выводимых на страницу
  7. $begin это число от которого начинается отсчёт в SQl запросе
  8. $colp это общее количество элементов находящихся в базе
  9. */
  10.      public $pnumber, $begin, $page, $colp;
  11.  
  12.      function __construct($pnumber, $page, $colp) {
  13.         $this->pnumber = $pnumber;
  14.         $this->page = $page;
  15.         $this->colp = $colp;
  16.     }
  17.  
  18.      /**
  19.      * Готовим данные для навигации
  20.      */
  21.     function navi() {
  22.         if($this->page == 0) $this->page = 1;
  23.         if($this->pnumber < 5) $this->pnumber = 5; else $this->pnumber = $pnumber;
  24.         if($this->colp/$this->pnumber < $this->page) $this->page = ceil($this->colp/$this->pnumber);
  25.         $this->begin=($this->page-1)*$this->pnumber;
  26.     }
  27.  
  28.     /**
  29.      * Постаничная навигация
  30.      */
  31.     function Navigation() {
  32.         $number = (int) ($this->colp/$this->pnumber);
  33.         if($this->colp >= ($this->pnumber+1)) {
  34.         if((float) ($this->colp/$this->pnumber)-$number !=0) $number++;
  35.         echo "<div>";
  36.         if($this->page == "1") {echo"<< Пред. |";}
  37.  
  38.         if($this->begin>0) {
  39.             echo "<a href='".$_SERVER['PHP_SELF']."?page=".($this->page-1)."'><< Пред.</a>|";
  40.         }
  41.  
  42.         if($this->colp>$this->begin+$this->pnumber) {
  43.             echo "|<a href='".$_SERVER['PHP_SELF']."?page=".($this->page+1)."'>След.>></a>";
  44.         }
  45.         if($number == $this->page) {echo"| След.>>";}
  46.  
  47.         $all = ceil($this->colp/$this->pnumber); $i=1;   $c="";   $tt=$this->page;
  48.         while($i<=$all) {
  49.             if($i<=3  || $i==$tt- 1  || $i==$tt || $i==$tt+1  || $i>=$all-2) {
  50.             $ii="<a href='".$_SERVER['PHP_SELF']."?page=".$i."'>".$i."</a>";
  51.             if($i==$tt) {
  52.                 if($i!=$all){ $c.= "<b>".$i."</b>,";
  53.                 } else {$c.= "<b>".$i."</b>";}
  54.             }
  55.             else { if($i!=$all){ $c.= $ii.",";} else{$c.= $ii;}
  56.             }
  57.             } else {$c.= "."; }
  58.             $i++;
  59.         }
  60.         $c = preg_replace("/[,][.]+/", "...", $c);
  61.         echo "<br/>".$c."<br/></div>";
  62.         }
  63.     }
  64. }


Использование класса
PHP:
скопировать код в буфер обмена
  1. $page = !empty($_GET['page']) ? abs((int)$_GET['page']) : 1; //получаем номер страницы
  2. $pnumber = "10"; //Сколько элементов выводить на страницу
  3. $colp = mysql_num_rows(mysql_query("SELECT `id` FROM `table`")); // Общее кол-во записей
  4.  
  5. $navig = new Navigation($pnumber, $page, $colp);
  6. $navig->navi();
  7. $query = mysql_query("SELECT * FROM `table` ORDER BY `id` DESC LIMIT ".$navig->begin.", ".$navig->pnumber);
  8.  
  9. while($info = mysql_fetch_array($query)) {
  10. // Тут выводим на печать всё что нужно
  11. }
  12.  
  13. $navig->Navigation();
 
 Top
DiosPA
Отправлено: 10 Февраля, 2011 - 03:07:52
Post Id



Частый гость


Покинул форум
Сообщений всего: 180
Дата рег-ции: Янв. 2011  
Откуда: Россия


Помог: 2 раз(а)




однако даже не думал что для "этого" кто то классы писать будет Ха-ха

(Отредактировано автором: 10 Февраля, 2011 - 03:09:29)

 
 Top
Okula
Отправлено: 10 Февраля, 2011 - 10:42:47
Post Id



Участник


Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010  


Помог: 42 раз(а)




А что в этом плохого? Намного удобнее чем переписывать постоянно код.
Да и модифицировать куда проще... Хм
 
 Top
LEONeso
Отправлено: 10 Февраля, 2011 - 11:54:26
Post Id



Посетитель


Покинул форум
Сообщений всего: 499
Дата рег-ции: Янв. 2010  
Откуда: Россия, Москва


Помог: 1 раз(а)




Doberman, обрати внимание на пост от OrmaJever ( http://php[dot]su/articles/?cat=exam[dot][dot][dot]les&page=062 )

Ссылка стоящая, если друг не работает, возможно дело в:

его можно представить как:

смотря как собирается массив.

еще в место:

можно использовать это:
PHP:
скопировать код в буфер обмена
  1. while (($myrow  = mysql_fetch_array($result))!==FALSE) {/*выводим данные из бд типа $myrow['name']*/}


На самом деле все хорошо описали, сам использую.

(Отредактировано автором: 10 Февраля, 2011 - 11:56:53)



-----
Для некоторых лучший способ написать что-нибудь осмысленное - это сесть _опой на клавиатуру.
 
 Top
Doberman
Отправлено: 10 Февраля, 2011 - 14:44:13
Post Id



Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Янв. 2011  


Помог: 0 раз(а)




Спасибо всем !
 
 Top
JustUserR
Отправлено: 10 Февраля, 2011 - 16:07:07
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Doberman пишет:
В запросе я выбираю кол-во записей , а для обычной выборки нужно другой запрос писать ? или можно как то все в одном обьединить
Для осуществления запроса множества информационных полей определение которых производится на основании указаываемых критерив из целевого сервера БД - в действительности возможно использование SQL-операции UNION позволяющей осуществить соединения последовательности передаваемых данных из различных элементов выборки при условии сопоставления соответствующих идентификаторов столбцов


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB