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]   

> Описание: Fatal error: Call to a member function res2Array() on a non-object in
Данил Банаев
Отправлено: 23 Марта, 2012 - 10:23:35
Post Id


Новичок


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


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




При запросе на index.php выдает ошибку:
Fatal error: Call to a member function res2Array() on a non-object in Z:\home\visitka\www\inc\Page.class.inc.php on line 21

Mysql.class.inc.php:
PHP:
скопировать код в буфер обмена
  1.  
  2. require "config.inc.php";
  3. class MySql{
  4.         private $_connection;
  5.         function __construct(){
  6.                 $this->_connection=mysql_connect(HOST,LOGIN,PASS) or die("Ошибка соединения с сервером БД");
  7.                             mysql_select_db("card") or die("Ошибка выбора БД");
  8.                 $sql="SET CHARSET utf8";
  9.                 $this->sql($sql);
  10.         }
  11.         function sql($sql){
  12.                 $res=mysql_query($sql,$this->_connection) or die("Ошибка выполнения запроса");
  13.                 return $res;
  14.         }
  15.         function res2Array($res){
  16.                 $arr=array();
  17.                 while($row=mysql_fetch_assoc($res)){
  18.                         $arr[]=$row;
  19.                 }
  20.                 $this->close();
  21.                 return $arr;
  22.         }
  23.         function close(){
  24.                 mysql_close($this->_connection);
  25.         }
  26. }
  27. $db=new MySql();


Page.class.inc.php:
PHP:
скопировать код в буфер обмена
  1.  
  2. require "Mysql.class.inc.php";
  3. class Page{
  4.         public $keywords;
  5.         public $description;
  6.         public $title;
  7.         function viewHeader(){
  8.                 require_once "header.inc.php";
  9.         }
  10.         function viewMenu(){
  11.                 require "menu.inc.php";
  12.         }
  13.         function viewContent(){
  14.                 require "content.inc.php";
  15.         }
  16.         function viewFooter(){
  17.                 require "footer.inc.php";
  18.         }
  19.         function viewListNews(){
  20.                 $sql="SELECT id,title,datetime FROM news";
  21.                 $news=$db->res2Array($db->sql($sql));\\21-я строка
  22.                 $str="";
  23.                 foreach($news as $new){
  24.                         $str.="<p><a href=\"#\">".$new["title"]."</a><br><span>".$new["datetime"]."</span></p>";
  25.                 }
  26.                 return $str;
  27.         }
  28. }
  29. $page=new Page();


index.php:
PHP:
скопировать код в буфер обмена
  1.  
  2. require "inc/Page.class.inc.php";
  3. $page->keywords="Ключ1,Ключ2";
  4. $page->description="Описание";
  5. $page->title="Заголовок";
  6. $page->content=$page->viewListNews();
  7. $page->viewHeader();
  8. $page->viewMenu();
  9. $page->viewContent();
  10. $page->viewFooter();

(Отредактировано автором: 23 Марта, 2012 - 10:26:08)

 
 Top
Champion Супермодератор
Отправлено: 23 Марта, 2012 - 10:33:28
Post Id



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


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


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




Как Вы думаете, переменная $db на 21 первой строчке того скрипта определена, когда происходить обращение к res2Array() ?
 
 Top
Данил Банаев
Отправлено: 23 Марта, 2012 - 10:47:03
Post Id


Новичок


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


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




в Mysql.class.inc.php:
27 строка - создан объект
 
 Top
Мелкий Супермодератор
Отправлено: 23 Марта, 2012 - 10:50:09
Post Id



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


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




Данил Банаев, и зачем вы полезли в ООП, не зная даже об областях видимости переменных?
CODE (text):
скопировать код в буфер обмена
  1. http://php.su/learnphp/vars/?localvars


-----
PostgreSQL DBA
 
 Top
Данил Банаев
Отправлено: 23 Марта, 2012 - 11:08:19
Post Id


Новичок


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


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




спасибо.
причиной оказалась как всегда невнимательность.
все заработало
 
 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