Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Постраничный вывод при переборе массива
 
 автор: AsAn   (02.01.2009 в 18:02)   письмо автору
 
 

Здравствуйте! Данный фрагмент кода должен выводит содержимое массива $end в зависимости от запроса посетителя постранично с числом сообщений на странице - 10. Количество страниц подсчитывается верно, однако существует проблема с передачей через ссылку параметров запроса на следующие страницы. Первая выдача осуществляется верно, но при клике по номеру следующей страницы, запрос обрезается до одного слова. Подскажите в чём проблема.
Вот код:
if(count($end)>0)//если массив не пустой
{
   $num=10;//задаём число сообщ. на стр.
   @$page=$_GET['page'];//извлек. № стр из url
   @$prew=count($end);//определяем кол-во записей
   // Находим общее число страниц
   $tpage = (($prew - 1) / $num) + 1;
   $tpage =  intval($tpage);
   // Определяем начало сообщений для текущей страницы
   $page = intval($page);
   // Если значение $page меньше единицы или отрицательно
   // переходим на первую страницу
   // А если слишком большое, то переходим на последнюю
   if(empty($page)||$page<0)
   {
      $page=1;
   }
      if($page>$tpage)
      {
          $page=$tpage;
      }
// Вычисляем начиная с какого номера
// следует выводить сообщения
$start = $page * $num - $num;
$end=array_slice($end,$start,$num);
// Выбираем $num сообщений начиная с номера $start            
   foreach($end as $key=>$value)//делаем перебор массива с конечным текстом
   echo $key;//выводим текст в браузер
   // Проверяем нужны ли стрелки назад
if ($page != 1) $pervpage = '<a href=res.php?zapros='.$_GET['zapros'].'&page=1>Первая</a> | <a href=res.php?zapros='.$_GET['zapros'].'&page='. ($page - 1) .'>Предыдущая</a> | ';
// Проверяем нужны ли стрелки вперед
if ($page != $tpage) $nextpage = ' | <a href=res.php?zapros='.$_GET['zapros'].'&page='. ($page + 1) .'>Следующая</a> | <a href=res.php?zapros='.$_GET['zapros'].'&page=' .$tpage. '>Последняя</a>';
// Находим две ближайшие станицы с обоих краев, если они есть
if($page - 5 > 0) $page5left = ' <a href=res.php?zapros='.$_GET['zapros'].'&page='. ($page - 5) .'>'. ($page - 5) .'</a> | ';
if($page - 4 > 0) $page4left = ' <a href=res.php?zapros='.$_GET['zapros'].'&zapros='.$_GET['zapros'].'&page='. ($page - 4) .'>'. ($page - 4) .'</a> | ';
if($page - 3 > 0) $page3left = ' <a href=res.php?zapros='.$_GET['zapros'].'&page='. ($page - 3) .'>'. ($page - 3) .'</a> | ';
if($page - 2 > 0) $page2left = ' <a href=res.php?zapros='.$_GET['zapros'].'&page='. ($page - 2) .'>'. ($page - 2) .'</a> | ';
if($page - 1 > 0) $page1left = '<a href=res.php?zapros='.$_GET['zapros'].'&page='. ($page - 1) .'>'. ($page - 1) .'</a> | ';

if($page + 5 <= $tpage) $page5right = ' | <a href=res.php?zapros='.$_GET['zapros'].'&page='. ($page + 5) .'>'. ($page + 5) .'</a>';
if($page + 4 <= $tpage) $page4right = ' | <a href=res.php?zapros='.$_GET['zapros'].'&page='. ($page + 4) .'>'. ($page + 4) .'</a>';
if($page + 3 <= $tpage) $page3right = ' | <a href=res.php?zapros='.$_GET['zapros'].'&page='. ($page + 3) .'>'. ($page + 3) .'</a>';
if($page + 2 <= $tpage) $page2right = ' | <a href=res.php?zapros='.$_GET['zapros'].'&page='. ($page + 2) .'>'. ($page + 2) .'</a>';
if($page + 1 <= $tpage) $page1right = ' | <a href=res.php?zapros='.$_GET['zapros'].'&page='. ($page + 1) .'>'. ($page + 1) .'</a>';

// Вывод меню если страниц больше одной

   if ($tpage > 1)
   {
   Error_Reporting(E_ALL & ~E_NOTICE);
   echo $pervpage.$page5left.$page4left.$page3left.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$page3right.$page4right.$page5right.$nextpage;
   }
}

Сам выводимый текст находится в ключе массива.

  Ответить  
 
 автор: Trianon   (02.01.2009 в 18:48)   письмо автору
 
   для: AsAn   (02.01.2009 в 18:02)
 

... <a href=res.php?zapros='.$_GET['zapros'].'& ...


Это как?
rawurlencode() , htmlspecialchars() уже не нужны?

  Ответить  
 
 автор: AsAn   (02.01.2009 в 20:05)   письмо автору
 
   для: Trianon   (02.01.2009 в 18:48)
 

Разобрался. С Новогодними праздниками крыша совсем едет )) Забыл кавычки в ссылках поставить. Спасибо Trianon. Только благодаря процитированному фрагменту моего кода увидел ошибку. А в общей массе как-то не разглядел.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования