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]   

> Без описания
Dastar
Отправлено: 05 Января, 2008 - 23:25:21
Post Id



Частый гость


Покинул форум
Сообщений всего: 199
Дата рег-ции: Янв. 2008  
Откуда: Израиль


Помог: -6 раз(а)




Очень часто бывает нужно поделить на странички какую-то инфу.
Воть мой вариант этого:
Предположим, что вся информация находится в двухмерном масиве:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. $data = array(
  4.    0 => array(
  5.       "name" => "name",
  6.       "msg" => "text"));
  7. //И так далее
  8. ?>
  9.  


Само деление:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. $num = 1;
  4. //страница по умолчанию
  5.  
  6. if (is_numeric($_GET['str'])) $num = $_GET['str'];
  7. //В переменной $_GET['str'] находится номер текущей странички
  8.  
  9. $infa = 5;
  10. //Количество выводимой информации на стр
  11.  
  12. $cols = cout($data);
  13. //Количество записей в массиве
  14.  
  15. $cols = $cols/$infa;
  16. //Количество стр
  17.  
  18. $col = ceil($cols);
  19. //Округляем количество стр
  20.  
  21. $pageoff = $infa*$num;
  22. //ID последней выводимой статьи на стр
  23.  
  24. $pageon = $pageoff-$infa;
  25. //ID первой выводимой статьи на стр
  26.  
  27. $prov = count($data);
  28. //Узнаем количество информации в массиве $data
  29.  
  30. if ($pageoff>$prov) $pageoff = $pageoff-($pageoff-$prov);
  31. //Убеждаемся что страничка вообще имеет место существовать
  32.  
  33.  
  34. //Выводим номера страничек
  35. for ($pagen=1; $pagen<=$col; $pagen++)  
  36.    if ($pagen==$num) @$str .= $pagen;
  37.    else @$str .= "<a href=?$pagen>$pagen</a> ";
  38.    
  39. echo $str."<br>";
  40.  
  41. //Выводим нашу информацию на экран
  42. for ($i=$pageon, ; $data[$i]==true, $i<$pageoff; $i++)
  43. {
  44.    echo "Название: ".$data[$i]['name']."<br>";
  45.    echo $data[$i]['msg']."<br><br>";
  46. };
  47. ?>
  48.  


Отредактировано модератором: valenok, 08 Февраля, 2008 - 08:27:48


-----
Не знаешь - молчи.
 
 Top
nsbox
Отправлено: 02 Сентября, 2008 - 18:07:14
Post Id



Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Сент. 2008  
Откуда: Минск, Беларусь


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




проверил бы хоть на синтаксические ошибки = 2шт.


-----
Мой форум: http://forum[dot]nsbox[dot]ru/
 
 Top
EuGen Администратор
Отправлено: 03 Сентября, 2008 - 09:33:59
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




Вот давайте и оставим эту старую тему в покое
Тема закрыта!


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 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