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]   

> Описание: постраничная навигация
iceman
Отправлено: 11 Октября, 2009 - 23:37:13
Post Id


Новичок


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


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

[+][+]


PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. /*здесь подключение базы данных с файла db.php */
  4. include ("blocks/bd.php");
  5. /*вытаскивает все данные из базы данных по колонках, с базы по имени rech страница WHERE page='rechept', так названа база данных*/
  6. $r = mysql_query("SELECT id, title, meta_d, meta_k,  date, discription, author FROM rech", $db);
  7. ?>
  8. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  9. <html>
  10. <head>
  11. <meta name="description" content="<?PHP echo $m['meta_d']; ?>"><meta name="keywords" content="<?PHP echo $m['meta_k']; ?>">
  12. <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
  13. <title><?PHP echo $m['title']; ?></title>
  14. <link href="style.css" rel="stylesheet" type="text/css">
  15. <style type="text/css">
  16. <!--
  17. .style1 {font-size: 10}
  18. -->
  19. </style>
  20. </head>
  21. <body>
  22. <table width="1024" border="1" align="center" cellpadding="0" cellspacing="0" class="main_border">
  23.   <!--вставить шапку в страницу-->
  24.   <?PHP include ("blocks/header.php");?>
  25.   <tr>
  26.     <!--вставить навигационный блок-->
  27.     <?PHP include ("blocks/navigat.php");?>
  28.     <!--информационный конект блок-->
  29.        
  30.         <td width="800" align="left" valign="top" bgcolor="#FFFFFF">
  31. <?PHP
  32.  
  33. echo <<<head
  34.  
  35. <table border="0" width="100%" class="static_table">
  36.   <tr>
  37.      <td valign="top">
  38. <p><img src="pic/88.gif" alt="красный крест" hspace="5" vspace="5" align="left"><strong>Целебные свойства растительного мира и народной
  39. медицины удивительны и неисчерпаемы.
  40. К сожалению, мы часто забываем об этом
  41. чудесном даре природы и не используем
  42. рецепты народной медицины в полной мере
  43. для сохранения и укрепления своего здоровья. </p><img src="pic/80.gif" alt="красный крест" hspace="5" vspace="5" align="right"><p>
  44.  
  45. Лечение, основанное на применении знаний,
  46. которые дает народная медицина, берет свое
  47. начало в глубокой древности. Первые письменные
  48. сведения о целебных травах и народных методах
  49. лечения встречаются в источниках, датируемых
  50. пятым тысячелетием до нашей эры.<br>
  51. </p>
  52.          </td>
  53.   </tr>
  54. </table>
  55. head;
  56.         ?>
  57.         <?PHP  
  58.         do {
  59.                
  60.         printf("<table align='center' class='lesson'>
  61.          <tr>
  62.            <td class='lesson_title'>
  63.                         <p class='lesson_name'><a href='rechepn.php?id=%s'>%s</a></p>
  64.                         <p class='lesson_ads'>дата добавления: %s</p>
  65.                         <p  class='lesson_ads'>автор рецепта %s</p>
  66.                         </td>
  67.            </tr>
  68.        
  69.                  <tr>
  70.                  <td>%s</td>
  71.          </tr>          
  72.        </table>",
  73.                 $m["id"],  $m["title"], $m["date"], $m["author"], $m["discription"]);
  74.                 }
  75.                 while ($m = mysql_fetch_array ($r));
  76.                                 ?>
  77.                 <!--здесь размещен материал по главной странице сайта, или контент главной страницы-->  </td>
  78.   </tr>
  79.     <?PHP include ("blocks/footer.php");?>
  80. </table>       
  81. </body>
  82. </html>
  83. страница работает но не могу найти как вставить код постраничной навигации для этой страницы
  84. [i](Добавление)[/i]
  85. <?
  86. $result77 = mysql_query("SELECT str FROM options", $db);
  87. $myrow77 = mysql_fetch_array($result77);
  88. $num = $myrow77["str"];
  89. // Извлекаем из URL текущую страницу
  90. @$page = $_GET['page'];
  91. // Определяем общее число сообщений в базе данных
  92. $result00 = mysql_query("SELECT COUNT(*) FROM data WHERE cat='$cat'");
  93. $temp = mysql_fetch_array($result00);
  94. $posts = $temp[0];
  95. // Находим общее число страниц
  96. $total = (($posts - 1) / $num) + 1;
  97. $total =  intval($total);
  98. // Определяем начало сообщений для текущей страницы
  99. $page = intval($page);
  100. // Если значение $page меньше единицы или отрицательно
  101. // переходим на первую страницу
  102. // А если слишком большое, то переходим на последнюю
  103. if(empty($page) or $page < 0) $page = 1;
  104.   if($page > $total) $page = $total;
  105. // Вычисляем начиная с какого номера
  106. // следует выводить сообщения
  107. $start = $page * $num - $num;
  108. // Выбираем $num сообщений начиная с номера $start             
  109.                
  110. $result = mysql_query("SELECT id,title,description,date,author,mini_img,view FROM data WHERE cat='$cat' ORDER BY id LIMIT $start, $num",$db);
  111. ?>
  112.  
  113.  
  114. <?
  115. // Проверяем нужны ли стрелки назад
  116. if ($page != 1) $pervpage = '<a href=view_cat.php?cat='.$cat.'&page=1>Первая</a> | <a href=view_cat.php?cat='.$cat.'&page='. ($page - 1) .'>Предыдущая</a> | ';
  117. // Проверяем нужны ли стрелки вперед
  118. if ($page != $total) $nextpage = ' | <a href=view_cat.php?cat='.$cat.'&page='. ($page + 1) .'>Следующая</a> | <a href=view_cat.php?cat='.$cat.'&page=' .$total. '>Последняя</a>';
  119.  
  120. // Находим две ближайшие станицы с обоих краев, если они есть
  121. if($page - 5 > 0) $page5left = ' <a href=view_cat.php?cat='.$cat.'&page='. ($page - 5) .'>'. ($page - 5) .'</a> | ';
  122. if($page - 4 > 0) $page4left = ' <a href=view_cat.php?cat='.$cat.'&page='. ($page - 4) .'>'. ($page - 4) .'</a> | ';
  123. if($page - 3 > 0) $page3left = ' <a href=view_cat.php?cat='.$cat.'&page='. ($page - 3) .'>'. ($page - 3) .'</a> | ';
  124. if($page - 2 > 0) $page2left = ' <a href=view_cat.php?cat='.$cat.'&page='. ($page - 2) .'>'. ($page - 2) .'</a> | ';
  125. if($page - 1 > 0) $page1left = '<a href=view_cat.php?cat='.$cat.'&page='. ($page - 1) .'>'. ($page - 1) .'</a> | ';
  126.  
  127. if($page + 5 <= $total) $page5right = ' | <a href=view_cat.php?cat='.$cat.'&page='. ($page + 5) .'>'. ($page + 5) .'</a>';
  128. if($page + 4 <= $total) $page4right = ' | <a href=view_cat.php?cat='.$cat.'&page='. ($page + 4) .'>'. ($page + 4) .'</a>';
  129. if($page + 3 <= $total) $page3right = ' | <a href=view_cat.php?cat='.$cat.'&page='. ($page + 3) .'>'. ($page + 3) .'</a>';
  130. if($page + 2 <= $total) $page2right = ' | <a href=view_cat.php?cat='.$cat.'&page='. ($page + 2) .'>'. ($page + 2) .'</a>';
  131. if($page + 1 <= $total) $page1right = ' | <a href=view_cat.php?cat='.$cat.'&page='. ($page + 1) .'>'. ($page + 1) .'</a>';
  132.  
  133. // Вывод меню если страниц больше одной
  134.  
  135. if ($total > 1)
  136. {
  137. Error_Reporting(E_ALL & ~E_NOTICE);
  138. echo "<div class=\"pstrnav\">";
  139. echo $pervpage.$page5left.$page4left.$page3left.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$page3right.$page4right.$page5right.$nextpage;
  140. echo "</div>";
  141. }
  142. ?>
  143.  


Отредактировано администратором: EuGen, 13 Октября, 2009 - 07:01:46
 
 Top
Мелкий Супермодератор
Отправлено: 12 Октября, 2009 - 15:20:18
Post Id



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


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


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




Закиньте, пожалуйста, в теги форума php, а то не нашёл, где сам вопрос задаётся


-----
PostgreSQL DBA
 
 Top
Платинум
Отправлено: 12 Октября, 2009 - 16:33:44
Post Id



Частый гость


Покинул форум
Сообщений всего: 223
Дата рег-ции: Апр. 2009  
Откуда: Пермь


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




iceman пишет:
$result = mysql_query("SELECT id,title,description,date,author,mini_img,view FROM data WHERE cat='$cat' ORDER BY id LIMIT $start, $num",$db);

После этого надо выводить контент!
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $m = mysql_fetch_array ($result)
  4. do {
  5.  
  6. printf("<table align='center' class='lesson'>
  7. <tr>
  8. <td class='lesson_title'>
  9. <p class='lesson_name'><a href='rechepn.php?id=%s'>%s</a></p>
  10. <p class='lesson_ads'>дата добавления: %s</p>
  11. <p class='lesson_ads'>автор рецепта %s</p>
  12. </td>
  13. </tr>
  14.  
  15. <tr>
  16. <td>%s</td>
  17. </tr>
  18. </table>",
  19. $m["id"], $m["title"], $m["date"], $m["author"], $m["discription"]);
  20. }
  21. while ($m = mysql_fetch_array ($r));
  22. ?>
  23.  
  24.  

И потом тока уже проверка на стрелки вперед назад... итд...
И все это вам надо разместить между тегами <body></body>

(Отредактировано автором: 12 Октября, 2009 - 16:36:40)

 
My status
 Top
iceman
Отправлено: 12 Октября, 2009 - 23:37:29
Post Id


Новичок


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


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

[+][+]


PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. /*здесь подключение базы данных с файла db.php */
  3. include ("blocks/bd.php");
  4. /*вытаскивает все данные из базы данных по колонках, с базы по имени rech страница WHERE page='rechept', так названа база данных*/
  5. $r = mysql_query("SELECT id, title, meta_d, meta_k,  date, discription, author FROM rech", $db); таблица rech имеет id,  саt(столбец имеет значение 1) title, meta_d, meta_k,  date, discription, author text
  6. ?>
  7. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  8. <html>
  9. <head>
  10. <meta name="description" content="<?PHP echo $me['meta_d']; ?>">
  11. <meta name="keywords" content="<?PHP echo $me['meta_k']; ?>">
  12. <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
  13. <title><?PHP echo $me['title']; ?></title>
  14. <link href="style.css" rel="stylesheet" type="text/css">
  15. <style type="text/css">
  16. <!--
  17. .style1 {font-size: 10}
  18. -->
  19. </style>
  20. </head>
  21. <body>
  22. <table width="1024" border="1" align="center" cellpadding="0" cellspacing="0" class="main_border">
  23.   <!--вставить шапку в страницу-->
  24.   <?PHP include ("blocks/header.php");?>
  25.   <tr>
  26.     <!--вставить навигационный блок-->
  27.     <?PHP include ("blocks/navigat.php");?>
  28.     <!--информационный конект блок-->
  29.         <td width="800" align="left" valign="top" bgcolor="#FFFFFF">
  30. <?PHP
  31. echo <<<head
  32. <table border="0" width="100%" class="static_table">
  33.   <tr>
  34.      <td valign="top">
  35. <p><img src="pic/88.gif" alt="красный крест" hspace="5" vspace="5" align="left"><strong>Целебные свойства растительного мира и народной
  36. медицины удивительны и неисчерпаемы.
  37. К сожалению, мы часто забываем об этом
  38. чудесном даре природы и не используем
  39. рецепты народной медицины в полной мере
  40. для сохранения и укрепления своего здоровья. </p><img src="pic/80.gif" alt="красный крест" hspace="5" vspace="5" align="right"><p>
  41. Лечение, основанное на применении знаний,
  42. которые дает народная медицина, берет свое
  43. начало в глубокой древности. Первые письменные
  44. сведения о целебных травах и народных методах
  45. лечения встречаются в источниках, датируемых
  46. пятым тысячелетием до нашей эры.<br>
  47. </p>
  48.          </td>
  49.   </tr>
  50. </table>
  51. head;
  52.         ?>
  53.         <?PHP
  54. $result77 = mysql_query("SELECT str FROM options", $db);
  55. $myrow77 = mysql_fetch_array($result77);
  56. $num = $myrow77["str"];
  57. // Извлекаем из URL текущую страницу
  58. @$page = $_GET['page'];
  59. // Определяем общее число сообщений в базе данных
  60. $result00 = mysql_query("SELECT COUNT(*) FROM rech WHERE cat='$cat'");  ошибку в этой строке
  61. $temp = mysql_fetch_array($result00);
  62. $posts = $temp[0];
  63. // Находим общее число страниц
  64. $total = (($posts - 1) / $num) + 1;
  65. $total =  intval($total);
  66. // Определяем начало сообщений для текущей страницы
  67. $page = intval($page);
  68. // Если значение $page меньше единицы или отрицательно
  69. // переходим на первую страницу
  70. // А если слишком большое, то переходим на последнюю
  71. if(empty($page) or $page < 0) $page = 1;
  72.   if($page > $total) $page = $total;
  73. // Вычисляем начиная с какого номера
  74. // следует выводить сообщения
  75. $start = $page * $num - $num;
  76. // Выбираем $num сообщений начиная с номера $start     
  77.         $result = mysql_query("SELECT * FROM rech WHERE cat='$cat' ORDER BY id LIMIT $start, $num",$db); ошибка в этой строке
  78.         $m = mysql_fetch_array ($result);
  79.         do {
  80.         printf("<table align='center' class='lesson'>
  81.          <tr>
  82.            <td class='lesson_title'>
  83.                         <p class='lesson_name'><a href='rechepn.php?id=%s'>%s</a></p>
  84.                         <p class='lesson_ads'>дата добавления: %s</p>
  85.                         <p  class='lesson_ads'>автор рецепта %s</p>
  86.                         </td>
  87.            </tr>
  88.                          <tr>
  89.                  <td>%s</td>
  90.          </tr>          
  91.        </table>",
  92.                 $m["id"],
  93.                  $m["title"],
  94.                  $m["date"],
  95.                  $m["author"],
  96.                  $m["discription"]);
  97.                 }
  98.                 while ($m = mysql_fetch_array ($result));
  99.                 ?>
  100.         <?PHP
  101. // Проверяем нужны ли стрелки назад. имя файла где пишется код = rechept.php
  102. if ($page != 1) $pervpage = '<a href=rechept.php?cat='.$cat.'&page=1>Первая</a> | <a href=rechept.php?cat='.$cat.'&page='. ($page - 1) .'>Предыдущая</a> | ';
  103. // Проверяем нужны ли стрелки вперед
  104. if ($page != $total) $nextpage = ' | <a href=rechept.php?cat='.$cat.'&page='. ($page + 1) .'>Следующая</a> | <a href=rechept.php?cat='.$cat.'&page=' .$total. '>Последняя</a>';
  105. // Находим две ближайшие станицы с обоих краев, если они есть
  106. if($page - 5 > 0) $page5left = ' <a href=rechept.php?cat='.$cat.'&page='. ($page - 5) .'>'. ($page - 5) .'</a> | ';
  107. if($page - 4 > 0) $page4left = ' <a href=rechept.php?cat='.$cat.'&page='. ($page - 4) .'>'. ($page - 4) .'</a> | ';
  108. if($page - 3 > 0) $page3left = ' <a href=rechept.php?cat='.$cat.'&page='. ($page - 3) .'>'. ($page - 3) .'</a> | ';
  109. if($page - 2 > 0) $page2left = ' <a href=rechept.php?cat='.$cat.'&page='. ($page - 2) .'>'. ($page - 2) .'</a> | ';
  110. if($page - 1 > 0) $page1left = '<a href=rechept.php?cat='.$cat.'&page='. ($page - 1) .'>'. ($page - 1) .'</a> | ';
  111. if($page + 5 <= $total) $page5right = ' | <a href=rechept.php?cat='.$cat.'&page='. ($page + 5) .'>'. ($page + 5) .'</a>';
  112. if($page + 4 <= $total) $page4right = ' | <a href=rechept.php?cat='.$cat.'&page='. ($page + 4) .'>'. ($page + 4) .'</a>';
  113. if($page + 3 <= $total) $page3right = ' | <a href=rechept.php?cat='.$cat.'&page='. ($page + 3) .'>'. ($page + 3) .'</a>';
  114. if($page + 2 <= $total) $page2right = ' | <a href=rechept.php?cat='.$cat.'&page='. ($page + 2) .'>'. ($page + 2) .'</a>';
  115. if($page + 1 <= $total) $page1right = ' | <a href=rechept.php?cat='.$cat.'&page='. ($page + 1) .'>'. ($page + 1) .'</a>';
  116. // Вывод меню если страниц больше одной
  117. if ($total > 1)
  118. {
  119. Error_Reporting(E_ALL & ~E_NOTICE);
  120. echo "<div class=\"pstrnav\">";
  121. echo $pervpage.$page5left.$page4left.$page3left.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$page3right.$page4right.$page5right.$nextpage;
  122. echo "</div>";
  123. }
  124. ?>
  125.             <!--здесь размещен материал по главной странице сайта, или контент главной страницы-->      </td>
  126.   </tr>
  127.     <?PHP include ("blocks/footer.php");?>
  128. </table>       
  129. </body>
  130. </html>
  131. вот сделал так
  132. [i](Добавление)[/i]
  133. $result00 = mysql_query("SELECT COUNT(*) FROM rech WHERE cat='$cat'");
  134. Notice: Undefined variable: cat in z:\home\localhost\www\ironigor\rechept.php on line 63
  135.         $result = mysql_query("SELECT * FROM rech WHERE cat='$cat' ORDER BY id LIMIT $start, $num",$db);
  136. Notice: Undefined variable: cat in z:\home\localhost\www\ironigor\rechept.php on line 80
  137. if ($page != 1) $pervpage = '<a href=rechept.php?cat='.$cat.'&page=1>Первая</a> | <a href=rechept.php?cat='.$cat.'&page='. ($page - 1) .'>Предыдущая</a> | ';

Undefined variable: cat in z:\home\localhost\www\ironigor\rechept.php on line 105
(Добавление)
Помогите пожалуйста


Отредактировано модератором: Champion, 13 Октября, 2009 - 09:32:04
Попросили же тебя. Будешь так делать прогоним
 
 Top
Платинум
Отправлено: 13 Октября, 2009 - 04:35:31
Post Id



Частый гость


Покинул форум
Сообщений всего: 223
Дата рег-ции: Апр. 2009  
Откуда: Пермь


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




Закинтьте все в PHP теги, а то зрние жалко...
Как закинете, почитаем....
 
My status
 Top
JustUserR
Отправлено: 13 Октября, 2009 - 08:13:11
Post Id



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


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


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




Цитата:
// Находим две ближайшие станицы с обоих краев, если они есть
А вот этот страшный код со страницами нельзя в цикл запихнуть от -5 до 5 ?
И к слову количетсво записей в базе можно узнать с помощью count


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Champion Супермодератор
Отправлено: 13 Октября, 2009 - 09:32:52
Post Id



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


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


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




iceman пишет:
Undefined variable: cat in z:\home\localhost\www\ironigor\rechept.php on line 105
Перевди. И http://phpfaq[dot]ru/debug
 
 Top
iceman
Отправлено: 20 Октября, 2009 - 17:56:53
Post Id


Новичок


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


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

[+][+]


короче сделал, спасибо за помощь Радость
 
 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