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 :: Пагинатор на ajax

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Без описания
arimanecro
Отправлено: 23 Сентября, 2014 - 17:08:45
Post Id



Частый гость


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


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




Приветствую!

Мучаюсь уже два дня и никак не могу понять, почему так происходит.
Может кто-нибудь сталкивался и поможет...

Скачал ajax-php-mysql пагинатор, при выведении новостей, а их например: 10, он их выводит на первой странице 5 (так задумано) и на второй 5, но в пагинаторе появляются 4 страницы, вместо 2-ух, они лишние, там пустота, когда туда кликаешь, то естественно говорится, что база пуста.

Я не могу понять, это ошибка в php или ajax? и в какой строчке?

скачивал отсюда nacodes.com/2013/03/14/Paginatio n-with-Jquery-PHP-Ajax-and-MySQL

Буду оч. признателен, если кто поможет...

(Отредактировано автором: 23 Сентября, 2014 - 17:11:18)

 
 Top
RickMan
Отправлено: 23 Сентября, 2014 - 17:15:53
Post Id


Участник


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


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




Колличество элементов на странице где выставлял? В php или js?
 
 Top
arimanecro
Отправлено: 23 Сентября, 2014 - 17:22:48
Post Id



Частый гость


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


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




я в js полный ноль, поэтому возможно оно там и указано, выставляю весь js код какой там только есть:

CODE (javascript):
скопировать код в буфер обмена
  1. $(document).ready(function(){
  2.                 function loading_show(){
  3.                     $('#loading').html("<img src='images/loading.gif'/>").fadeIn('fast');
  4.                 }
  5.                 function loading_hide(){
  6.                     $('#loading').fadeOut('fast');
  7.                 }                
  8.                 function loadData(page){
  9.                     loading_show();                    
  10.                     $.ajax
  11.                     ({
  12.                         type: "POST",
  13.                         url: "load_data.php",
  14.                         data: "page="+page,
  15.                         success: function(msg)
  16.                         {
  17.                             $("#container").ajaxComplete(function(event, request, settings)
  18.                             {
  19.                                 loading_hide();
  20.                                 $("#container").html(msg);
  21.                             });
  22.                         }
  23.                     });
  24.                 }
  25.                 loadData(1);  // For first time page load default results
  26.                 $('#container .pagination li.active').live('click',function(){
  27.                     var page = $(this).attr('p');
  28.                     loadData(page);
  29.                    
  30.                 });          
  31.                 $('#go_btn').live('click',function(){
  32.                     var page = parseInt($('.goto').val());
  33.                     var no_of_pages = parseInt($('.total').attr('a'));
  34.                     if(page != 0 && page <= no_of_pages){
  35.                         loadData(page);
  36.                     }else{
  37.                         alert('Enter a PAGE between 1 and '+no_of_pages);
  38.                         $('.goto').val("").focus();
  39.                         return false;
  40.                     }
  41.                    
  42.                 });
  43.             });
 
 Top
RickMan
Отправлено: 23 Сентября, 2014 - 17:26:28
Post Id


Участник


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


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




Ну по документации видно, что колличество элементов на странице указывается в файле load_data.php в вот такой вот строке:
PHP:
скопировать код в буфер обмена
  1. $per_page = 15; // Per page records

Вы тут меняли 15 на 5, так?
 
 Top
arimanecro
Отправлено: 23 Сентября, 2014 - 17:27:38
Post Id



Частый гость


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


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




да, менял Улыбка
(Добавление)
мне кажется что ошибка, именно в арифметическом действии на php, потому что ставишь 5 , выводит 6 страниц, ставишь 15, выводит 2 страницы

(Отредактировано автором: 23 Сентября, 2014 - 17:34:24)

 
 Top
RickMan
Отправлено: 23 Сентября, 2014 - 17:39:17
Post Id


Участник


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


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




Покажите, что у вас в файле load_data.php
 
 Top
arimanecro
Отправлено: 23 Сентября, 2014 - 17:42:24
Post Id



Частый гость


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


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




PHP:
скопировать код в буфер обмена
  1.  
  2. if($_POST['page'])
  3. {
  4. $page = $_POST['page'];
  5. $cur_page = $page;
  6. $page -= 1;
  7. $per_page = 5;
  8. $previous_btn = true;
  9. $next_btn = true;
  10. $first_btn = true;
  11. $last_btn = true;
  12. $start = $page * $per_page;
  13. include"db.php";
  14.  
  15. $query_pag_data = "SELECT id, title from break_news where category = 'policy' LIMIT $start, $per_page";
  16. $result_pag_data = mysqli_query($connection, $query_pag_data) or die('MySql Error' . mysql_error());
  17. $msg = "";
  18. while ($row = mysqli_fetch_assoc($result_pag_data)) {
  19. $htmlmsg=htmlentities($row['title']);
  20.     $msg .= "<li><b>" . $row['id'] . "</b> " . $htmlmsg . "</li>";
  21. }
  22. $msg = "<div class='data'><ul>" . $msg . "</ul></div>"; // Content for Data
  23.  
  24.  
  25. /* --------------------------------------------- */
  26. $query_pag_num = "SELECT COUNT(*) AS count FROM break_news";
  27. $result_pag_num = mysqli_query($connection,$query_pag_num);
  28. $row = mysqli_fetch_assoc($result_pag_num);
  29. $count = $row['count'];
  30. $no_of_paginations = ceil($count / $per_page);
  31.  
  32. /* ---------------Calculating the starting and endign values for the loop----------------------------------- */
  33. if ($cur_page >= 7) {
  34.     $start_loop = $cur_page - 3;
  35.     if ($no_of_paginations > $cur_page + 3)
  36.         $end_loop = $cur_page + 3;
  37.     else if ($cur_page <= $no_of_paginations && $cur_page > $no_of_paginations - 6) {
  38.         $start_loop = $no_of_paginations - 6;
  39.         $end_loop = $no_of_paginations;
  40.     } else {
  41.         $end_loop = $no_of_paginations;
  42.     }
  43. } else {
  44.     $start_loop = 1;
  45.     if ($no_of_paginations > 7)
  46.         $end_loop = 7;
  47.     else
  48.         $end_loop = $no_of_paginations;
  49. }
  50. /* ----------------------------------------------------------------------------------------------------------- */
  51. $msg .= "<div class='pagination'><ul>";
  52.  
  53. // FOR ENABLING THE FIRST BUTTON
  54. if ($first_btn && $cur_page > 1) {
  55.     $msg .= "<li p='1' class='active'>First</li>";
  56. } else if ($first_btn) {
  57.     $msg .= "<li p='1' class='inactive'>First</li>";
  58. }
  59.  
  60. // FOR ENABLING THE PREVIOUS BUTTON
  61. if ($previous_btn && $cur_page > 1) {
  62.     $pre = $cur_page - 1;
  63.     $msg .= "<li p='$pre' class='active'>Previous</li>";
  64. } else if ($previous_btn) {
  65.     $msg .= "<li class='inactive'>Previous</li>";
  66. }
  67. for ($i = $start_loop; $i <= $end_loop; $i++) {
  68.  
  69.     if ($cur_page == $i)
  70.         $msg .= "<li p='$i' style='color:#fff;background-color:#006699;' class='active'>{$i}</li>";
  71.     else
  72.         $msg .= "<li p='$i' class='active'>{$i}</li>";
  73. }
  74.  
  75. // TO ENABLE THE NEXT BUTTON
  76. if ($next_btn && $cur_page < $no_of_paginations) {
  77.     $nex = $cur_page + 1;
  78.     $msg .= "<li p='$nex' class='active'>Next</li>";
  79. } else if ($next_btn) {
  80.     $msg .= "<li class='inactive'>Next</li>";
  81. }
  82.  
  83. // TO ENABLE THE END BUTTON
  84. if ($last_btn && $cur_page < $no_of_paginations) {
  85.     $msg .= "<li p='$no_of_paginations' class='active'>Last</li>";
  86. } else if ($last_btn) {
  87.     $msg .= "<li p='$no_of_paginations' class='inactive'>Last</li>";
  88. }
  89. $goto = "<input type='text' class='goto' size='1' style='margin-top:-1px;margin-left:60px;'/><input type='button' id='go_btn' class='go_button' value='Go'/>";
  90. $total_string = "<span class='total' a='$no_of_paginations'>Page <b>" . $cur_page . "</b> of <b>$no_of_paginations</b></span>";
  91. $msg = $msg . "</ul>" . $goto . $total_string . "</div>";  // Content for pagination
  92. echo $msg;
  93. }
  94.  


а вот скрин моей БД:


Нажмите для увеличения

(Отредактировано автором: 23 Сентября, 2014 - 17:47:38)

 
 Top
IllusionMH
Отправлено: 23 Сентября, 2014 - 18:17:08
Post Id



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


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


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




arimanecro, а где where когда считается кол-во страниц?

(Отредактировано автором: 23 Сентября, 2014 - 18:17:54)

 
 Top
RickMan
Отправлено: 23 Сентября, 2014 - 19:54:52
Post Id


Участник


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


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




PHP:
скопировать код в буфер обмена
  1. $query_pag_num = "SELECT COUNT(*) AS count FROM break_news";

замените на
PHP:
скопировать код в буфер обмена
  1. $query_pag_num = "SELECT COUNT(*) AS count FROM break_news where category = 'policy' ";
 
 Top
KingStar
Отправлено: 23 Сентября, 2014 - 23:16:52
Post Id



Участник


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


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




кто Вас только учил присваивать имена, зарезервированными словами? Хм

хотя бы уж так

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT COUNT(*) AS `count` FROM break_news WHERE category = 'policy'


-----
То что программа работает, не означает что она написана правильно!
 
 Top
arimanecro
Отправлено: 24 Сентября, 2014 - 09:29:13
Post Id



Частый гость


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


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




всем огромнейшее спасибо за быстрые ответы, все получилось Здорово
только единственное, чего я не понял, что означает count(маленькими буквами)?

и как записать, в данной строке

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT COUNT(*) AS `count` FROM break_news WHERE category = 'policy'


чтобы выводилось всё из БД?
 
 Top
RickMan
Отправлено: 24 Сентября, 2014 - 09:29:14
Post Id


Участник


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


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




Извиняюсь конечно, но count это функция и count() отличается всеже от count. В добавок вот список из документации и там count нету:
http://www[dot]mysql[dot]ru/docs/man/Reserved_words[dot]html
Так что не вижу никакой ошибки, и могу поспорить mysql ее тоже там не увидит.
(Добавление)
arimanecro пишет:
всем огромнейшее спасибо за быстрые ответы, все получилось Здорово
только единственное, чего я не понял, что означает count(маленькими буквами)?

и как записать, в данной строке

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT COUNT(*) AS `count` FROM break_news WHERE category = 'policy'


чтобы выводилось всё из БД?


http://phpclub[dot]ru/mysql/doc/select[dot]html
Цитата:


Используя ключевое слово AS, выражению в SELECT можно присвоить псевдоним. Псевдоним используется в качестве имени столбца в данном выражении и может применяться в ORDER BY или HAVING. Например:

mysql> SELECT CONCAT(last_name,', ',first_name) AS full_name
FROM mytable ORDER BY full_name;

 
 Top
arimanecro
Отправлено: 24 Сентября, 2014 - 09:42:53
Post Id



Частый гость


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


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




хм, c count понятно...
Но все равно не получается, выбрать всё из БД, пробую так и все равно выводятся лишние страницы:

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT COUNT(*) AS `count` FROM break_news ORDER BY id


как я понимаю * она уже и так подразумевает выбрать всё, ничего другого дописывать не надо ??? Непонял!
 
 Top
Viper
Отправлено: 24 Сентября, 2014 - 19:16:51
Post Id



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


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


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




arimanecro пишет:
только единственное, чего я не понял, что означает count(маленькими буквами)?
алиас(название поля в результате выборки).

В дополнение к
Цитата:
Используя ключевое слово AS, выражению в SELECT можно присвоить псевдоним. Псевдоним используется в качестве имени столбца в данном выражении и может применяться в ORDER BY или HAVING. Например:

mysql> SELECT CONCAT(last_name,', ',first_name) AS full_name
FROM mytable ORDER BY full_name;

... если вы используете сложные выборки из множества таблиц то без них никак. Также алиас используется если в нескольких таблицах есть поля с одинаковыми именами.

arimanecro пишет:
как я понимаю * она уже и так подразумевает выбрать всё, ничего другого дописывать не надо


*(звездочка) в запросе означает "все поля(столбцы)". но не означает "все строки". Используйте WHERE и LIMIT для ограничения диапазона выборки строк.


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
arimanecro
Отправлено: 30 Сентября, 2014 - 12:35:12
Post Id



Частый гость


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


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




Viper

спасибо, в моем случае сработало только так: "SELECT COUNT(DISTINCT `id`) AS `count` FROM break_news ORDER BY date DESC";
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB