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 :: page

 PHP.SU

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


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

> Описание: page
low php
Отправлено: 30 Ноября, 2011 - 18:37:26
Post Id


Новичок


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


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




помогите че то не могу разобраться с page хочу сделать страницы для мониторинга серверов! )
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. // Устанавливаем соединение с базой данных
  3. include "config.php";
  4. // Переменная хранит число сообщений выводимых на станице
  5. $num = 25;
  6. // Извлекаем из URL текущую страницу
  7. $page = $_GET['page'];
  8. // Определяем общее число сообщений в базе данных
  9. $result = mysql_query("SELECT COUNT(*) FROM post");
  10. $posts = mysql_fetch_row($result);
  11. // Находим общее число страниц
  12. $total = intval(($posts - 1) / $num) + 1;
  13. // Определяем начало сообщений для текущей страницы
  14. $page = intval($page);
  15. // Если значение $page меньше единицы или отрицательно
  16. // переходим на первую страницу
  17. // А если слишком большое, то переходим на последнюю
  18. if(empty($page) or $page < 0) $page = 1;
  19.   if($page > $total) $page = $total;
  20. // Вычисляем начиная к какого номера
  21. // следует выводить сообщения
  22. $start = $page * $num - $num;
  23. // Выбираем $num сообщений начиная с номера $start
  24. $result = mysql_query("SELECT * FROM post LIMIT $start, $num");
  25. // В цикле переносим результаты запроса в массив $postrow
  26. while ( $postrow[] = mysql_fetch_array($result))
  27. ?>
  28. На этом первая часть закончена. Двумерный массив postrow хранит все поля таблицы post, необходимые для отображения станицы. Вот пример как можно организовать вывод сообщений.
  29.  
  30. <?PHP
  31. echo "<table>";
  32. for($i = 0; $i < $num; $i++)
  33. {
  34. echo "<tr>
  35.         <td>".$postrow[$i]['name']."</td>
  36.         <td>".$postrow[$i]['time']."</td></tr>
  37.       <tr><td colspan=\"2\">".$postrow[$i]['text']."</td></tr>";
  38. }
  39. echo "</table>";
  40. ?>
  41. Теперь надо организовать навигацию. Формируем составляющие будущей навигации.
  42. Коды стрелки «в начало» и «назад» поместим в одну переменную, также поступим и со стрелками «в конец» и «вперед».
  43.  
  44. <?PHP
  45. // Проверяем нужны ли стрелки назад
  46. if ($page != 1) $pervpage = '<a href= ./page?page=1><<</a>
  47.                               <a href= ./page?page='. ($page - 1) .'><</a> ';
  48. // Проверяем нужны ли стрелки вперед
  49. if ($page != $total) $nextpage = ' <a href= ./page?page='. ($page + 1) .'>></a>
  50.                                   <a href= ./page?page=' .$total. '>>></a>';
  51.  
  52. // Находим две ближайшие станицы с обоих краев, если они есть
  53. if($page - 2 > 0) $page2left = ' <a href= ./page?page='. ($page - 2) .'>'. ($page - 2) .'</a> | ';
  54. if($page - 1 > 0) $page1left = '<a href= ./page?page='. ($page - 1) .'>'. ($page - 1) .'</a> | ';
  55. if($page + 2 <= $total) $page2right = ' | <a href= ./page?page='. ($page + 2) .'>'. ($page + 2) .'</a>';
  56. if($page + 1 <= $total) $page1right = ' | <a href= ./page?page='. ($page + 1) .'>'. ($page + 1) .'</a>';
  57.  
  58. // Вывод меню
  59. echo $pervpage.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$nextpage;
  60.  
  61. ?>
 
 Top
sKaa
Отправлено: 30 Ноября, 2011 - 19:28:04
Post Id



Частый посетитель


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


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

[+]


PHP:
скопировать код в буфер обмена
  1.  
  2. $posts = mysql_fetch_row($result);
  3. // Находим общее число страниц
  4. $total = intval(($posts - 1) / $num) + 1;
  5.  

Попробуй заменить на :
PHP:
скопировать код в буфер обмена
  1.  
  2. $posts = mysql_fetch_row($result);
  3. $total = ceil($posts[0] / $num);
  4.  
  5. $page = (isset($_GET['page'])) ? $_GET['page'] : 0;
  6. if($page < 0 || $page > $total) $page = 0;
  7.  
  8. $start = $page * $num;
  9.  
  10. $result = mysql_query("SELECT * FROM post LIMIT $start, $num");
  11.  
  12.  
  13.  
 
 Top
low php
Отправлено: 30 Ноября, 2011 - 19:36:12
Post Id


Новичок


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


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




а вот таблицы в mysql не нужны к нему?
(Добавление)
Ska можно твое icq
 
 Top
sKaa
Отправлено: 30 Ноября, 2011 - 19:42:40
Post Id



Частый посетитель


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


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

[+]


Отправил в личку
 
 Top
low php
Отправлено: 30 Ноября, 2011 - 19:43:13
Post Id


Новичок


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


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




так?
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. // Устанавливаем соединение с базой данных
  3. include "config.php";
  4. // Переменная хранит число сообщений выводимых на станице
  5. $num = 25;
  6. // Извлекаем из URL текущую страницу
  7. $page = $_GET['page'];
  8. // Определяем общее число сообщений в базе данных
  9. $posts = mysql_fetch_row($result);
  10. $total = ceil($posts[0] / $num);
  11.  
  12. $page = (isset($_GET['page'])) ? $_GET['page'] : 0;
  13. if($page < 0 || $page > $total) $page = 0;
  14.  
  15. $start = $page * $num;
  16.  
  17. $result = mysql_query("SELECT * FROM post LIMIT $start, $num");
  18. // Определяем начало сообщений для текущей страницы
  19. $page = intval($page);
  20. // Если значение $page меньше единицы или отрицательно
  21. // переходим на первую страницу
  22. // А если слишком большое, то переходим на последнюю
  23. if(empty($page) or $page < 0) $page = 1;
  24. if($page > $total) $page = $total;
  25. // Вычисляем начиная к какого номера
  26. // следует выводить сообщения
  27. $start = $page * $num - $num;
  28. // Выбираем $num сообщений начиная с номера $start
  29. $result = mysql_query("SELECT * FROM post LIMIT $start, $num");
  30. // В цикле переносим результаты запроса в массив $postrow
  31. while ( $postrow[] = mysql_fetch_array($result))
  32. ?>
  33. На этом первая часть закончена. Двумерный массив postrow хранит все поля таблицы post, необходимые для отображения станицы. Вот пример как можно организовать вывод сообщений.
  34.  
  35. <?PHP
  36. echo "<table>";
  37. for($i = 0; $i < $num; $i++)
  38. {
  39. echo "<tr>
  40.        <td>".$postrow[$i]['name']."</td>
  41.        <td>".$postrow[$i]['time']."</td></tr>
  42.      <tr><td colspan=\"2\">".$postrow[$i]['text']."</td></tr>";
  43. }
  44. echo "</table>";
  45. ?>
  46. Теперь надо организовать навигацию. Формируем составляющие будущей навигации.
  47. Коды стрелки «в начало» и «назад» поместим в одну переменную, также поступим и со стрелками «в конец» и «вперед».
  48.  
  49. <?PHP
  50. // Проверяем нужны ли стрелки назад
  51. if ($page != 1) $pervpage = '<a href= ./page?page=1><<</a>
  52.                              <a href= ./page?page='. ($page - 1) .'><</a> ';
  53. // Проверяем нужны ли стрелки вперед
  54. if ($page != $total) $nextpage = ' <a href= ./page?page='. ($page + 1) .'>></a>
  55.                                  <a href= ./page?page=' .$total. '>>></a>';
  56.  
  57. // Находим две ближайшие станицы с обоих краев, если они есть
  58. if($page - 2 > 0) $page2left = ' <a href= ./page?page='. ($page - 2) .'>'. ($page - 2) .'</a> | ';
  59. if($page - 1 > 0) $page1left = '<a href= ./page?page='. ($page - 1) .'>'. ($page - 1) .'</a> | ';
  60. if($page + 2 <= $total) $page2right = ' | <a href= ./page?page='. ($page + 2) .'>'. ($page + 2) .'</a>';
  61. if($page + 1 <= $total) $page1right = ' | <a href= ./page?page='. ($page + 1) .'>'. ($page + 1) .'</a>';
  62.  
  63. // Вывод меню
  64. echo $pervpage.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$nextpage;
  65.  
  66. ?>
 
 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