尝试获取非对象的属性时发生php错误

尝试获取非对象的属性时发生php错误,php,joomla2.5,breezingforms,Php,Joomla2.5,Breezingforms,我有一张从数据库表中获取值的录取表。场景是我有一个课程列表,学生选择一个课程,我在URL中传递课程ID,然后使用此代码在字段中获得相应的课程名称:(该表单是在joomla中使用breezing表单设计的。) 不幸的是,我得到了这个错误: *FACILEFORMS捕获异常* PHP错误级别:E_注意 PHP文件名:/home/web10385/public\u html/**/components/com\u breezingforms/facileforms.process.PHP(1219):

我有一张从数据库表中获取值的录取表。场景是我有一个课程列表,学生选择一个课程,我在URL中传递课程ID,然后使用此代码在字段中获得相应的课程名称:(该表单是在joomla中使用breezing表单设计的。)

不幸的是,我得到了这个错误:

*FACILEFORMS捕获异常* PHP错误级别:E_注意 PHP文件名:/home/web10385/public\u html/**/components/com\u breezingforms/facileforms.process.PHP(1219):eval()代码 PHP行号:7 最后已知位置:第1行表单自定义件代码之前 错误消息:未定义的偏移量:0

*FACILEFORMS捕获异常* PHP错误级别:E_注意 PHP文件名:/home/web10385/public\u html/**/components/com\u breezingforms/facileforms.process.PHP(1219):eval()代码 PHP行号:8 最后已知位置:第1行表单自定义件代码之前 错误消息:尝试获取非对象的属性

上面的代码是前一个表单


谢谢

您没有构建数据库对象

您已声明了
$database
,但尚未使用对象对其进行初始化…这就是问题所在。您似乎忘记了它。

因为,在初始化它之前,它是一个
非对象
类型。您已经尝试使用它两次了,因此出现了两个错误

    global $database, $rec;
               ^^ uninitialized....
        $database->setQuery("SELECT * FROM course_list WHERE record = '$course_id' AND 
              ^^ but you are using it here....

        $row = $database->loadObjectList(.....
                ^^ here....
从所看到的信息来看,这可能是解决方案:

编辑:

$database=JFactory::getDbo();

以下是我所做的:

在表单片段>表单之前添加此脚本:

$this->execPieceByName('ff_InitLib');
$course_id= JRequest::getVar('CID');

//intialize BF utilities
$this->execPieceByName('ff_InitUtilities');
global $database, $rec;
$database = ff_select('SELECT * FROM course_list WHERE record = '.$course_id.' ');
$rec = $database[0];
然后将其添加到文本字段(课程名称)的值字段:


应该这样做


和平。

我的答案解决了吗?但这是joomla数据库,已经由joomla初始化了。请具体说明我不是程序员,我的意思是,
$database
变量…但是你还没有初始化…如果它是由joomla初始化的,你为什么要再次声明它…要么你遗漏了什么,要么我…请发布你的完整信息代码…但我确定这就是原因…这就是我从当前代码中看到的错误的含义…
$database
是一个新的全局变量。。虽然您正在使用
setQuery
方法对其进行初始化,但这并不是初始化的地方。。。
$this->execPieceByName('ff_InitLib');
$course_id= JRequest::getVar('CID');

//intialize BF utilities
$this->execPieceByName('ff_InitUtilities');
global $database, $rec;
$database = ff_select('SELECT * FROM course_list WHERE record = '.$course_id.' ');
$rec = $database[0];
<?php global $rec; return $rec->name; ?>