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
Форумы портала PHP.SU :: Версия для печати :: Постраничная новигация [3]
Форумы портала PHP.SU » Разное » Обсуждение статей » Постраничная новигация

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

31. Champion - 23 Января, 2009 - 08:40:29 - перейти к сообщению
$start, $num точно определены? и точно они числа? выведите их перед запросом. Вообще всю строку запроса выведите на экран оператором echo. Я имел в виду это, а не весь код сюда.
И еще, вам не помешает
http://phpfaq[dot]ru/debug
32. Stierus - 23 Января, 2009 - 08:49:11 - перейти к сообщению
У вас идёт проверка
Цитата:
if(empty($page) or $page < 0)
, наиболее частный вариант - когда $page будет равным 0 (из строчки $page = intval($page);, когда $page не определён($_GET['page'] не определён, кстати тут будет вылезать Notice, что не хорошо)). Таким образом у вас будет $start = $page * $num - $num = 0*10-10 = -10

Я бы советовал

PHP:
скопировать код в буфер обмена
  1. $page = $_GET['page'];
  2. $page = intval($page);
  3. if(empty($page) or $page < 0) $page = 1;
  4.   if($page > $total) $page = $total;

Заменить на
PHP:
скопировать код в буфер обмена
  1. if(isset($_GET['page']) and intval($_GET['page']) >0){
  2.     $page = intval($_GET['page']);
  3.     if($page > $total) $page = $total;
  4. }
  5. else{
  6.     $page = 1;
  7. }
  8.  
33. __ALEN__ - 16 Ноября, 2009 - 22:34:11 - перейти к сообщению
Привет всем! У меня на первой странице выводит нужное количество елементов, а на следующих произвольно, хотя переменные нормально создаются. Вот код:
PHP:
скопировать код в буфер обмена
  1.  
  2.   if(isset($_GET['p']))$p=intval($_GET['p']);
  3.   else{$p=1;}
  4.   $start=intval($p*$num-$num);
  5.   $end=intval($p*$num);
  6.   $c=mysql_query("SELECT * FROM `kategory` WHERE `type`='ras'  ORDER BY `id` DESC LIMIT $start, $end;");
  7.  
34. valenok - 17 Ноября, 2009 - 08:09:32 - перейти к сообщению
Выведи вверху станицы start и end и посмотри чему они равны.
35. __ALEN__ - 17 Ноября, 2009 - 19:14:04 - перейти к сообщению
я так и делаю, нормально они выводятся. вот код самой навигации, она простенькая и должна выводить ссылки на все страницы сразу:
PHP:
скопировать код в буфер обмена
  1.  
  2. //$all - всего страниц
  3. //$page -текущая страница
  4. //$inpage - елементов на страницу
  5. function GetNav($all,$page,$url,$inpage)
  6.  {
  7.   $str='';
  8.   $all_page=intval(($all-1)/$inpage+1);
  9.   if((float)($all/$inpage)-$all_page>0)$all_page++;
  10.   for($i=0; $i<$all_page; $i++)
  11.   {
  12.    if(($i+1)==$page)$str.='<b>'.($i+1).'</b> ';
  13.    else{$str.='<a href='.$url.($i+1).'>'.($i+1).' </a>';}
  14.   }
  15.   return $str;
  16.  }
  17.  
36. __ALEN__ - 18 Ноября, 2009 - 22:26:56 - перейти к сообщению
Так что никто незнает по поводу моего вопроса?
37. Bender - 13 Февраля, 2016 - 21:53:35 - перейти к сообщению
всем привет как исправит ошибка
PHP:
скопировать код в буфер обмена
  1. $posts = mysql_result(mysql_query("SELECT COUNT(*) FROM `article` WHERE `id_cat` = '$id' AND `right` = '1'"),0);
  2. //view.php on line 44
  3. $total = intval(($posts - 1) / $num) + 1;
  4.  
  5.  
  6. if($page > $total) $page = $total;
  7. $start = $page * $num - $num ;
  8. $result = mysql_query("SELECT * FROM `article` WHERE `id_cat` = '$id' AND `right` = 1 ORDER BY `type` ASC,`time` DESC LIMIT $start, $num");
  9. if ($posts >0) {
  10. //view.php on line 49
  11. while ($m = mysql_fetch_assoc($result))
  12.  
  13.  
  14. {


Warning: Division by zero in /home/users/s/smartttik/domains/ lib.uzbender.ru/view.php on line 44

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in /home/users/s/smartttik/domains/ lib.uzbender.ru/view.php on line 49
[1]
38. Bender - 14 Февраля, 2016 - 14:27:44 - перейти к сообщению
кто то ест этот форум
39. DelphinPRO - 14 Февраля, 2016 - 16:37:03 - перейти к сообщению
Нужно создавать свою тему с вопросом, а не писать в старые топики.


По ошибкам - вам ясным языком пишут - Деление на ноль! Что здесь не понятно?

Во второй пишется, что параметр у функции должен быть типа resource а по факту приходит false. Нужно делать проверку перед использованием функции.
Почему false? Потому что предыдущий запрос завершился с ошибкой.

 

Powered by ExBB FM 1.0 RC1