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]   

> Описание: делаю постраничный вывод
VasyaCV
Отправлено: 08 Июля, 2011 - 11:57:11
Post Id


Новичок


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


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




Добрый день!
PHP только начал изучать. Делаю постраничный вывод но никак не могу передавать значение значение переменных на следующую страничку. Что собственно я делаю. У меня есть форма поиска из которой мы берём параметры для запроса. Запрос делаем из базы данных. Поиск проходит правильно. Выводит первую страницу с данными. а при переходе на следующую параметры запроса не сохраняются. Пробую делать через сессию только ничего не получается. Прорыл кучу форумов и книжек. Может кто сможет помочь или дать совет как делать или укажет что я делаю не так.
Вот код над которым ломаю голову:
PHP:
скопировать код в буфер обмена
  1.  
  2. /* Соединение, выбор БД */
  3. include ("file/db.php");
  4.  
  5. $sh = $_POST["t1"];
  6. $sh2 = $_POST["t2"];
  7. $sh3 = $_POST["t3"];
  8. $sh4 = $_POST["t4"];
  9.  
  10. $tf1 = $_POST["f1"];
  11. $tf2 = $_POST["f2"];
  12. $tf3 = $_POST["f3"];
  13. $tf4 = $_POST["f4"];
  14.  
  15. /*создаю масивы*/
  16. $fld = array($tf1, $tf2, $tf3, $tf4);
  17. $val = array($sh, $s2, $s3, $s4);
  18.  
  19. $_SESSION["fld"]=$f;
  20. $_SESSION["val"]=$v;
  21.  
  22. if (isset($_GET["page"]))
  23.     {
  24.                 $f = $_SESSION["f"];
  25.                 $v = $_SESSION["v"];
  26.         }
  27.  
  28. /*функция постраничного вывода*/
  29. function link_bar($page, $count, $pages_count, $show_link)
  30. {
  31. // $show_link - это количество отображаемых ссылок;
  32. // нагляднее будет, когда это число будет парное
  33. // Если страница всего одна, то вообще ничего не выводим
  34. if ($pages_count == 1) return false;
  35. $sperator = ' '; // Разделитель ссылок;
  36. // Для придания ссылкам стиля
  37. $style = 'style="color: #808000; text-decoration: none; align=center;"';
  38. $begin = $page - intval($show_link / 2);
  39. unset($show_dots); // На всякий случай :)
  40. // Сам постраничный вывод
  41. // Если количество отображ. ссылок больше кол. страниц
  42. if ($pages_count <= $show_link + 1) $show_dots = 'no';
  43. // Вывод ссылки на первую страницу
  44. if (($begin > 2) && ($pages_count - $show_link > 2)) {
  45. echo '<a '.$style.' href='.$_server['php_self'].'?page=1> |< </a> ';
  46. }
  47. for ($j = 0; $j <= $show_link; $j++) // Основный цикл вывода ссылок
  48. {
  49. $i = $begin + $j; // Номер ссылки
  50. // Если страница рядом с началом, то увеличить цикл для того,
  51. // чтобы количество ссылок было постоянным
  52. if ($i < 1) continue;
  53. // Подобное находится в верхнем цикле
  54. if (!isset($show_dots) && $begin > 1) {
  55. echo ' <a '.$style.' href='.$_server['php_self'].'?page='.($i-1).'><b>...</b></a> ';
  56. $show_dots = "no";
  57. }
  58. // Номер ссылки перевалил за возможное количество страниц
  59. if ($i > $pages_count) break;
  60. if ($i == $page) {
  61. echo ' <a '.$style.' ><b>'.$i.'</b></a> ';
  62. } else {
  63. echo ' <a '.$style.' href='.$_server['php_self'].'?page='.$i.'>'.$i.'</a> ';
  64. }
  65.  
  66. // Если номер ссылки не равен кол. страниц и это не последняя ссылка
  67. if (($i != $pages_count) && ($j != $show_link)) echo $sperator;
  68. // Вывод "..." в конце
  69. if (($j == $show_link) && ($i < $pages_count)) {
  70. echo ' <a '.$style.' href='.$_server['php_self'].'?page='.($i+1).'><b>...</b></a> ';
  71. }
  72. }
  73. // Вывод ссылки на последнюю страницу
  74. if ($begin + $show_link + 1 < $pages_count) {
  75. echo ' <a '.$style.' href='.$_server['php_self'].'?page='.$pages_count.'> >| </a>';
  76. }
  77. return true;
  78. } // Конец функции
  79.  
  80. // Подготовка к постраничному выводу
  81. $ppage = 20;
  82. $perpage = $ppage; // Количество отображаемых данных из БД
  83.  
  84. if (empty($_GET['page']) || ($_GET['page'] <= 0)) {
  85. $page = 1;
  86. } else {
  87. $page = (int) $_GET['page']; // Считывание текущей страницы
  88. }
  89.  
  90. // Общее количество информации
  91. $query = mysql_query("SELECT * FROM blok WHERE (".$f[0]." like '%".$v[0]."%')
  92. and (".$f[1]." like '%".$v[1]."%')
  93. and (".$f[2]." like '%".$v[2]."%')
  94. and (".$f[3]." like '%".$v[3]."%')") or die ('<b>eror');
  95.  
  96. $count = mysql_num_rows($query);
  97.  
  98. $pages_count = ceil($count / $perpage); // Количество страниц
  99.  
  100. // Если номер страницы оказался больше количества страниц
  101. if ($page > $pages_count) $page = $pages_count;
  102. $start_pos = ($page - 1) * $perpage; // Начальная позиция, для запроса к БД
  103.  
  104. // Вызов функции, для вывода ссылок на экран
  105. link_bar($page, $count, $pages_count, 10);
  106.  
  107. // Вывод информации из базы данных
  108. $result = mysql_query("SELECT * FROM blok WHERE (".$f[0]." like '%".$v[0]."%')
  109. and (".$f[1]." like '%".$v[1]."%')
  110. and (".$f[2]." like '%".$v[2]."%')
  111. and (".$f[3]." like '%".$v[3]."%')") ORDER BY id, title limit ".$start_pos.", ".$perpage."") or die('Помилка!');
  112.  
  113. while ($row = mysql_fetch_array($result)) {
  114. echo "<hr/>".++$start_pos.". ".$row['tit'].". ".$row['au']."., ".$row['sub'].".: ".$row['ed'].".- ".$row['c']."., ".$row['pub'].". ".$row['publ'].". -".$row['pag']." <br>\n";
  115. }
  116.  
  117. /* Освобождение памяти, занятой результатом запроса */
  118. mysql_free_result($result);
  119. /* Закрытие соединения */
  120. mysql_close($link);
  121.  
 
 Top
White
Отправлено: 08 Июля, 2011 - 12:08:49
Post Id



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


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


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




PHP:
скопировать код в буфер обмена
  1. /*создаю масивы*/
  2. $fld = array($tf1, $tf2, $tf3, $tf4);
  3. $val = array($sh, $s2, $s3, $s4);
  4.  
  5. $_SESSION["fld"]=$f;
  6. $_SESSION["val"]=$v;
  7.  
  8. if (isset($_GET["page"]))
  9.     {
  10.                 $f = $_SESSION["f"];
  11.                 $v = $_SESSION["v"];
  12.         }
  13.  


может так:
PHP:
скопировать код в буфер обмена
  1.  
  2. if (isset($_GET["page"])) {
  3.   $fld = $_SESSION["fld"];
  4.   $val = $_SESSION["val"];
  5. } else {
  6.   $fld = array($tf1, $tf2, $tf3, $tf4);
  7.   $val = array($sh, $s2, $s3, $s4);
  8.   $_SESSION['fld'] = $fld;
  9.   $_SESSION['val'] = $val;
  10. }
  11.  

(Отредактировано автором: 08 Июля, 2011 - 12:09:20)



-----
if(time()>1356048000) die();
 
 Top
VasyaCV
Отправлено: 08 Июля, 2011 - 12:20:40
Post Id


Новичок


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


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




спасибо!
заработало.
 
 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