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
Форумы портала PHP.SU :: Версия для печати :: Постраничная навигация
Форумы портала PHP.SU » PHP » Пользовательские функции » Постраничная навигация

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

1. Dastar - 05 Января, 2008 - 23:25:21 - перейти к сообщению
Очень часто бывает нужно поделить на странички какую-то инфу.
Воть мой вариант этого:
Предположим, что вся информация находится в двухмерном масиве:
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.  
2. nsbox - 02 Сентября, 2008 - 18:07:14 - перейти к сообщению
проверил бы хоть на синтаксические ошибки = 2шт.
3. EuGen - 03 Сентября, 2008 - 09:33:59 - перейти к сообщению
Вот давайте и оставим эту старую тему в покое

 

Powered by ExBB FM 1.0 RC1