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]   

> Без описания
eter4
Отправлено: 14 Ноября, 2012 - 15:06:05
Post Id



Новичок


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


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




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

Вот код
PHP:
скопировать код в буфер обмена
  1.  
  2. $onPage = 10;// Переменная хранит число сообщений выводимых на станице
  3.        
  4.         @$page = trim(strip_tags($_GET['page']));//берем страницу и URL/URI
  5.        
  6.         $result = mysql_query("SELECT * FROM `blog`");//берем все записи
  7.  
  8.         $count = mysql_num_rows($result);//считаем сколько строк в базе
  9.        
  10.         $pages = $count / $onPage;//находим дробь или целое число(кол-во страниц)
  11.        
  12.         $pages = ceil($pages);//округляем в большую сторону(всегда в большую (4.000001 = 5))
  13.        
  14.         $firstMessageOnPage = $page * $onPage - 10;//первая запись будет значить страницу * 10 и прибавить единицу
  15.        
  16.         $lastMessageOnPage = $page * $onPage;//последняя запись на странице ( вычисляется: (страница + 1) * 10 записей)
  17.        
  18.         if(empty($page) or $page<0){//если страницы нету или она пуста то...
  19.                 $page = 1;//она будет равна 1
  20.         }
  21.        
  22.         if($page == 1){//если страница первая
  23.                 $firstMessageOnPage = 0;//то первой запписью будет не 10, а 1
  24.         }
  25.        
  26.         $last = $pages * $onPage - $count;
  27.        
  28.         $lastMessageOnLastPage = $pages * $onPage - $last;//последнее сообщение на последней странице
  29.        
  30.         echo $firstMessageOnPage;
  31.        
  32.         echo $lastMessageOnPage;
  33.        
  34.         $result = mysql_query("SELECT * FROM `blog` ORDER BY 'id' DESC");//берем по запросу
  35.        
  36.         while($rows[] = mysql_fetch_array($result));//в цикле переносим результаты в массив
  37. //нужны ли стрелки назад
  38.         if($page != 1){//если страница не равна первой
  39.                 $firstPageSym = "<a href='http://eter4eter.blog.ru/in.php?page=1'><<<</a> ";//то делаем стрелки на первую страницу
  40.                 $secondPageSym = "<a href='http://eter4eter.blog.ru/in.php?page=".($page - 1)."'><<</a> ";//делаем стрелки на предыдущую страницу
  41.         }
  42.        
  43.         //нужны ли стрелки вперед
  44.         if($page != $pages){//если страница не равна последней
  45.                 $thirdPageSym = " <a href='http://eter4eter.blog.ru/in.php?page=".$pages."'>>>></a>";//делаем стрелки на последнюю страницу
  46.                 $firthPageSym = " <a href='http://eter4eter.blog.ru/in.php?page=".($page + 1)."'>>></a>";//делаем стрелки на следующую страницу
  47.         }
  48.         //делаем три ближайшие страницы с обоих краев
  49.         if($page - 3 > 0){//если из текущей страницы вычесть 3 то она должны быть больше нуля
  50.                 $page3left = "<a href='http://eter4eter.blog.ru/in.php?page=".($page - 3)."'>".($page - 3)."</a> | ";
  51.         }
  52.         if($page - 2 > 0){//если из текущей страницы вычесть 2 то она должны быть больше нуля
  53.                 $page2left = "<a href='http://eter4eter.blog.ru/in.php?page=".($page - 2)."'>".($page - 2)."</a> | ";
  54.         }
  55.         if($page - 1 > 0){//если из текущей страницы вычесть 1 то она должны быть больше нуля
  56.                 $page1left = "<a href='http://eter4eter.blog.ru/in.php?page=".($page - 1)."'>".($page - 1)."</a> | ";
  57.         }
  58.         if($page + 3 <= $pages){//если к текущей странице прибавить 3 то она должна быть не меньше или ровна последней
  59.                 $page3right = " | <a href='http://eter4eter.blog.ru/in.php?page=".($page + 3)."'>".($page + 3)."</a>";
  60.         }
  61.         if($page + 2 <= $pages){//если к текущей странице прибавить 2 то она должна быть не меньше или ровна последней
  62.                 $page2right = " | <a href='http://eter4eter.blog.ru/in.php?page=".($page + 2)."'>".($page + 2)."</a>";
  63.         }
  64.         if($page + 1 <= $pages){//если к текущей странице прибавить 1 то она должна быть не меньше или ровна последней
  65.                 $page1right = " | <a href='http://eter4eter.blog.ru/in.php?page=".($page + 1)."'>".($page + 1)."</a>";
  66.         }
  67.         //выводим меню
  68.         echo "<div align='center'>";
  69.         echo @$firstPageSym.@$secondPageSym.@$page3left.@$page2left.@$page1left.'<b>'.@$page.'</b>'.@$page1right.@$page2right.@$page3right.@$firthPageSym.@$thirdPageSym;
  70.         echo "</div><hr>";
  71.        
  72.         if($page == $pages){
  73.                 for($i=0;$i<=$lastMessageOnLastPage;$i++){
  74.                         echo "<div align='center'>
  75.                         <h6>".$rows[$i]['id']."</h6><br>
  76.                         <h2>".$rows[$i]['title']."</h2><br>
  77.                         <h5>".$rows[$i]['content']."</h5><br>
  78.                         <h6>".@$rows[$i]['time']."</h6><br>
  79.                         <hr>
  80.                         </div>";
  81.                 }
  82.         }
  83.         else{
  84.                 for($i=0;$i<$onPage;$i++){
  85.                         echo "<div align='center'>
  86.                         <h6>".$rows[$i]['id']."</h6><br>
  87.                         <h2>".$rows[$i]['title']."</h2><br>
  88.                         <h5>".$rows[$i]['content']."</h5><br>
  89.                         <h6>".@$rows[$i]['time']."</h6><br>
  90.                         <hr>
  91.                         </div>";
  92.                 }
  93.         }
  94.        
  95.         echo "<div align='center'>";
  96.         echo @$firstPageSym.@$secondPageSym.@$page3left.@$page2left.@$page1left.'<b>'.@$page.'</b>'.@$page1right.@$page2right.@$page3right.@$firthPageSym.@$thirdPageSym;
  97.         echo "</div><br><br><br>";*/
  98.  
 
 Top
esterio
Отправлено: 14 Ноября, 2012 - 16:07:28
Post Id



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


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


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




1. @$rows[$i]['time'] - @ зло
2. ORDER BY ASC|DESC
3. PHP + HTML в одном также зло
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB