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]   

> Без описания
arimanecro
Отправлено: 01 Апреля, 2015 - 12:18:54
Post Id



Частый гость


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


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




Доброго дня.
Не могу найти ошибку в пагинаторе. Он отображает при переключении так:

5 t-shirt №5
6 t-shirt №6

переключаюсь на другую страницу

6 t-shirt №6
7 t-shirt №7

почему происходит дублирование №6, а не выводит 7 и 8?
Понимаю, что где-то стоит ненужный плюс или минус, но где?

Заранее спасибо, вот код:

PHP:
скопировать код в буфер обмена
  1.  
  2. $query = "SELECT * FROM t_shirts WHERE genre = 'F'";
  3. $query_run = mysqli_query($connection, $query);
  4. $count = mysqli_num_rows($query_run);
  5.  
  6. $perpage = 2; // items per page
  7.  
  8. $pages_count  = ceil($count / $perpage);
  9.  
  10. $page = isset($_GET['page']) ? $_GET['page'] : 1;
  11.  
  12. $query2 = "$query LIMIT ".(int)($page - 1).", ".(int)$perpage;
  13. $query_run2 = mysqli_query($connection, $query2);
  14.  
  15.   echo "<table style='border: solid 1px'><tr><th width=30> ID </th><th width=100> Name </th></tr>";
  16.   while($row = mysqli_fetch_array($query_run2)) {
  17.  
  18.    echo "<tr><td>".$row['t_id']."</td><td>".$row['t_name']."</td></tr>";
  19.   }
  20.  
  21.   echo "</table>";
  22. $pages_count = ceil($count / $perpage);
  23.  
  24. $is_first = $page == 1;
  25. $is_last  = $page == $pages_count;
  26.  
  27. // Prev cannot be less than one
  28. $prev = max(1, $page - 1);
  29.  
  30. // Next cannot be larger than $pages_count
  31. echo "<div id='paginator'>";
  32. $next = min($pages_count+1 , $page + 1);
  33. if($pages_count > 0) {
  34.  
  35.   // If we are on page 2 or higher
  36.   if(!$is_first) {
  37.       echo '<a class="btn_pag left" href="index.php?page='.$prev.'"></a>';
  38.   }
  39.   // If we are not at the last page
  40.   if(!$is_last) {
  41.       echo '<a class="btn_pag right" href="index.php?page='.$next.'"></a>';
  42.    
  43.   }
  44. echo "</div>";
  45.  
  46. }
  47. else {
  48.   echo "No result found";
  49. }
  50.  
  51.  
 
 Top
Faraon-san
Отправлено: 01 Апреля, 2015 - 12:28:36
Post Id



Посетитель


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


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




попробуй так:
PHP:
скопировать код в буфер обмена
  1. $query = "SELECT * FROM t_shirts WHERE genre = 'F'";
  2. $query_run = mysqli_query($connection, $query);
  3. $count = mysqli_num_rows($query_run);
  4.  
  5. $perpage = 2; // items per page
  6.  
  7. $pages_count  = ceil($count / $perpage);
  8.  
  9. $page = isset($_GET['page']) ? $_GET['page'] : 1;
  10.  
  11. $query2 = "$query LIMIT ".(($page - 1) * $perpage).", ".$perpage;
  12. $query_run2 = mysqli_query($connection, $query2);
  13.  
  14.   echo "<table style='border: solid 1px'><tr><th width=30> ID </th><th width=100> Name </th></tr>";
  15.   while($row = mysqli_fetch_array($query_run2)) {
  16.  
  17.    echo "<tr><td>".$row['t_id']."</td><td>".$row['t_name']."</td></tr>";
  18.   }
  19.  
  20.   echo "</table>";
  21.  
  22. $is_first = $page == 1;
  23. $is_last  = $page == $pages_count;
  24.  
  25. // Next cannot be larger than $pages_count
  26. echo "<div id='paginator'>";
  27. if($pages_count > 0) {
  28.  
  29.   // If we are on page 2 or higher
  30.   if(!$is_first) {
  31.       echo '<a class="btn_pag left" href="index.php?page='.($page - 1).'"></a>';
  32.   }
  33.   // If we are not at the last page
  34.   if(!$is_last) {
  35.       echo '<a class="btn_pag right" href="index.php?page='.($next + 1).'"></a>';
  36.    
  37.   }
  38. echo "</div>";
  39.  
  40. }
  41. else {
  42.   echo "No result found";
  43. }
  44.  

(Отредактировано автором: 01 Апреля, 2015 - 12:34:45)

 
 Top
arimanecro
Отправлено: 01 Апреля, 2015 - 12:40:13
Post Id



Частый гость


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


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




Faraon-san

спс! да, все было дело в умножении
 
 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