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]   

> Описание: Передыдущая и следующая страница
criaton
Отправлено: 01 Января, 2011 - 12:28:31
Post Id


Гость


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


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




CODE (htmlphp):
скопировать код в буфер обмена
  1. $db_query="select count(*) from ".DB_PREF."shop_products where n_category = ".$rowys." and hide='show' ";//and end_putdate>".$GLOBALS["timeGlobal"];
  2.          //echo ($db_query);
  3.          $q_ident=obr_db_query($db_query);
  4.          $vsego_kolvo=mysql_result($q_ident,0);
  5.          $this->kolvo_products_vsego_to_product=$vsego_kolvo;
  6.  
  7.  
  8.  
  9.  
  10.  $vsego_page=ceil($this->kolvo_products_vsego_to_product/1);
  11.     $os_text.="Всего страниц: ".$vsego_page;
  12.    
  13.  
  14.  
  15.  
  16.  
  17.     for ($page=1;$page<$vsego_page;$page++)
  18.      {
  19.  
  20.  
  21.         // Проверяем нужны ли стрелки назад
  22. if ($page != 1) $pervpage = "<a href=".$this->dir_http."/product". ($page - 1) .".html>пред</a>";
  23.  
  24. // Проверяем нужны ли стрелки вперед
  25. if ($page != $vsego_page) $nextpage = "<a href=".$this->dir_http."/product". ($page + 1) .".html>след</a>";
  26.        
  27.  
  28.  
  29.       }
  30.  
  31.  
  32. $os_text.="".$pervpage."".$nextpage."";
  33.  
  34.  


В этом коде есть ошибка помогите исправить

реализация предыдущая и следующая страница

(Отредактировано автором: 01 Января, 2011 - 13:06:50)

 
 Top
OrmaJever Модератор
Отправлено: 01 Января, 2011 - 12:56:43
Post Id



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


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


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




criaton пишет:
В этом коде есть ошибка помогите исправить

Это игра найди ошибку? Однако Может скажите где что не так работает? МОжет ошибку какую выдаёт?


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
criaton
Отправлено: 01 Января, 2011 - 13:08:37
Post Id


Гость


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


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




OrmaJever пишет:
Это игра найди ошибку? Может скажите где что не так работает? МОжет ошибку какую выдаёт?


при перемещении номера страниц не заменяются на новые

(Отредактировано автором: 01 Января, 2011 - 13:26:10)

 
 Top
HotBird
Отправлено: 01 Января, 2011 - 14:34:11
Post Id



Гость


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


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




У вас не правильно организован цикл for ($page=1;$page<$vsego_page;$page++), здесь всегда будут выводится как "предыдущая" последняя минус 2 и как "следующая" последняя.


-----
Человек, сделавший синтаксический анализатор PHP на одном регулярном выражении, займет достойное место среди гениев.
Качественный хостинг по доступной цене
 
 Top
criaton
Отправлено: 01 Января, 2011 - 14:45:13
Post Id


Гость


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


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




HotBird пишет:
У вас не правильно организован цикл for ($page=1;$page<$vsego_page;$page++), здесь всегда будут выводится как "предыдущая" последняя минус 2 и как "следующая" последняя.


да именно так и есть вы не подскажите как его исправить
 
 Top
HotBird
Отправлено: 01 Января, 2011 - 15:01:48
Post Id



Гость


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


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




Для того чтобы установить ссылку на предыдущую страницу или следующую нужно знать текущую страницу которая открыта. Сначала определите номер текущей страницы и запишите в переменную $page. А потом свой цыкл замените на такой код:
PHP:
скопировать код в буфер обмена
  1. $pervpage = "<a href=".$this->dir_http."/product". ($page - 1) .".html>пред</a>";
  2. echo $pervpage." ";
  3. $nextpage = "<a href=".$this->dir_http."/product". ($page + 1) .".html>след</a>";
  4. echo $nextpage;


-----
Человек, сделавший синтаксический анализатор PHP на одном регулярном выражении, займет достойное место среди гениев.
Качественный хостинг по доступной цене
 
 Top
criaton
Отправлено: 01 Января, 2011 - 15:18:10
Post Id


Гость


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


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




HotBird пишет:
Для того чтобы установить ссылку на предыдущую страницу или следующую нужно знать текущую страницу которая открыта.


что то я сегодня засиделся уже простое не могу сообразить

спасибо все получилось
(Добавление)
HotBird,

если надо чтобы номера не плюсом шли или минусом а задавать также нужную цифру

(Отредактировано автором: 01 Января, 2011 - 15:26:24)

 
 Top
LifePlay
Отправлено: 01 Января, 2011 - 18:35:30
Post Id



Частый гость


Покинул форум
Сообщений всего: 135
Дата рег-ции: Авг. 2010  
Откуда: Кобеляки, Украина


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




Юзай

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. #LifePlay# ПредСлед навигация. Требуется  “$page=текущая страница” ”$pages=количество страниц”
  3.  
  4. {
  5. if ($page == 1) echo 'Предыдущая';
  6. if ($page > 1) echo '<a href=index.php?d='.$d.'&page='.($page-1).'>Предыдущая</a>';
  7. if ($pages > $page) echo ' || <a href=index.php?d='.$d.'&page='.($page+1).'>Следующа</a><br/>';
  8. if ($pages == $page) echo " || Следующа<br/>";
  9. }
  10.  
  11. ?>



Вот цыфрами
Спойлер (Отобразить)

(Отредактировано автором: 01 Января, 2011 - 18:39:58)

 
 Top
HotBird
Отправлено: 01 Января, 2011 - 23:08:44
Post Id



Гость


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


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




criaton пишет:
если надо чтобы номера не плюсом шли или минусом а задавать также нужную цифру

Если я правильно понял вашу задачу то сделайте так:
PHP:
скопировать код в буфер обмена
  1. if ($page > 1) {$pervpage = "<a href=".$this->dir_http."/product". ($page - 1) .".html>пред</a>";
  2.       echo $pervpage." ";}
  3.       for ($page=1;$page<$vsego_page;$page++)
  4.           echo "<a href=".$this->dir_http."/product". $page .".html> ". $page ." </a>";
  5.       if ($page < $vsego_page) {$nextpage = "<a href=".$this->dir_http."/product". ($page + 1) .".html>след</a>";
  6.       echo $nextpage;}

(Отредактировано автором: 01 Января, 2011 - 23:12:40)



-----
Человек, сделавший синтаксический анализатор PHP на одном регулярном выражении, займет достойное место среди гениев.
Качественный хостинг по доступной цене
 
 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