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]   

> Без описания
nullbyte
Отправлено: 02 Июня, 2011 - 22:25:32
Post Id


Новичок


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


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




Приветствую, форумчане!
Мучаю постраничную навигацию. Вроде все сделал, но вылезает вот такая ошибка - Cannot use string offset as an array in <...>. Вылезает тогда, когда перехожу на любую страницу, кроме первой.
На вывод идет:
PHP:
скопировать код в буфер обмена
  1. <title><?PHP echo $view['general']['title']; ?></title>

Контроллер:
PHP:
скопировать код в буфер обмена
  1.     <?PHP
  2.             require_once('./functions/application.php');
  3.            
  4.             // Get settings start
  5.            
  6.             if(isset($_GET['view']))
  7.                     $address['view'] = $_GET['view'];
  8.             else
  9.                     $address['view'] = 'index';
  10.                    
  11.             if(isset($_GET['module']))
  12.                     $address['module'] = $_GET['module'];
  13.             if(isset($_GET['action']))
  14.                     $address['action'] = $_GET['action'];
  15.                    
  16.             if(isset($_GET['count']))
  17.                     $address['count'] = $_GET['count'];
  18.             else
  19.                     $address['count'] = 1;
  20.                    
  21.             // Get settings ends
  22.                    
  23.             $select['general'] = new database($configuration);    
  24.             $select['counter'] = new database($configuration);
  25.             $select['content'] = new database($configuration);
  26.      
  27.             $result['general'] = $select['general'] -> query("SELECT * FROM `general` WHERE `destination` = '{$address["view"]}';");
  28.             $result['counter'] = $select['counter'] -> query("SELECT COUNT(*) FROM `content` WHERE 1");
  29.            
  30.             $view['general'] = mysql_fetch_assoc($result['general']);
  31.            
  32.             // Navigation start
  33.            
  34.             $navigation['total'] = mysql_result($result['counter'], 0, 0);
  35.             $navigation['page'] = (int)$address['count'];
  36.                    
  37.             $navigation['pages'] = ceil($navigation['total'] / $configuration['pages']);  
  38.            
  39.             if($navigation['page'] < 1)
  40.                     $navigation['page'] = 1;
  41.             if($navigation['page'] > $navigation['pages'])
  42.                     $navigation['page'] = $navigation['pages'];
  43.                    
  44.             $navigation['start'] = ($navigation['page'] - 1) * $configuration['pages'];
  45.            
  46.             $result['content'] = $select['content'] -> query("SELECT id, title, description, text, author, comments, tags FROM `content` WHERE `destination` = '{$address["view"]}' ORDER BY `id` ASC LIMIT {$navigation['start']}, {$configuration['pages']};");
  47.            
  48.             // Navigation ends
  49.            
  50.             require_once('./templates/'.$configuration['design'].'/index.temp.php');
  51.     ?>

Прошу помочь, кто знает =))
 
 Top
DeepVarvar Супермодератор
Отправлено: 02 Июня, 2011 - 23:40:39
Post Id



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


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


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




Строки 23-25: нафига создавать три одинаковых объекта? (видимо еще и три активных подключения к базе)
Используйте синглтон, или на худой конец все тот же объект, но в единичном числе, обращаясь с запросами только к нему, присваивая результат разным переменным.

Строка 28: SELECT COUNT(*) FROM `content` WHERE 1
Зачем тут условие всегда которое возвращает истину?
Так надо: SELECT COUNT(*) cnt FROM `content`
Получите на выходе $res[0]['cnt'] содержащий число записей.

И поставьте в запросе класса для БД: mysql_query("xxx") or die(mysql_error());
За сим - отпишитесь...
 
 Top
nullbyte
Отправлено: 03 Июня, 2011 - 13:14:32
Post Id


Новичок


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


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




Цитата:
Строки 23-25: нафига создавать три одинаковых объекта? (видимо еще и три активных подключения к базе)
Используйте синглтон, или на худой конец все тот же объект, но в единичном числе, обращаясь с запросами только к нему, присваивая результат разным переменным.

Спасибо, недосмотрел.
Цитата:
И поставьте в запросе класса для БД: mysql_query("xxx") or die(mysql_error());
Сделал.
Цитата:
Так надо: SELECT COUNT(*) cnt FROM `content`
Получите на выходе $res[0]['cnt'] содержащий число записей.

Сделал, вот что получил:
CODE (htmlphp):
скопировать код в буфер обмена
  1. Warning: mysql_result(): supplied argument is not a valid MySQL result resource in Z:\home\managment\www\index.php on line 32
  2.  

PHP:
скопировать код в буфер обмена
  1.  
  2.         $connector = new database($configuration);
  3.  
  4.         $result['general'] = $connector -> query("SELECT * FROM `general` WHERE `destination` = '{$address["view"]}';");
  5.         $result['counter'] = $connector -> query("SELECT COUNT(*) count FROM `content`;");
  6.        
  7.         $view['general'] = mysql_fetch_assoc($result['general']);
  8.        
  9.         // Navigation start
  10.        
  11.         /* 32 строка */ $navigation['total'] = mysql_result($result[0]['count'], 0, 0);
  12.         $navigation['page'] = (int)$address['count'];
  13.                
  14.         $navigation['pages'] = ceil($navigation['total'] / $configuration['pages']);   
  15.        
  16.         if($navigation['page'] < 1)
  17.                 $navigation['page'] = 1;
  18.         if($navigation['page'] > $navigation['pages'])
  19.                 $navigation['page'] = $navigation['pages'];
  20.                
  21.         $navigation['start'] = ($navigation['page'] - 1) * $configuration['pages'];
  22.        
  23.         $result['content'] = $connector -> query("SELECT id, title, description, text, author, comments, tags FROM `content` WHERE `destination` = '{$address["view"]}' ORDER BY `id` ASC LIMIT {$navigation['start']}, {$configuration['pages']};");
  24.        
  25.         // Navigation ends
  26.        
  27.         require_once('./templates/'.$configuration['design'].'/index.temp.php');
  28.  
 
 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