0

我接受我不太了解 php 指南,需要帮助 - 如果可能的话,关于一些基本的 php 通知。尽管可以通过关闭错误报告来安全地忽略它们。但是,正如所说的学习来自工作经验

已将错误报告打开到最大有 2 个示例通知 - 这发生在具有不同变量的许多页面上

A) 注意:未定义的变量:列表在 /home/truecar7/public_html/components/com_toys/products/search.php 第 45 行

B) 未定义的属性:/home/truecar7/public_html/components/com_toys/models/category.php 中第 180 行的 stdClass::$prod_small_pic

A的功能是:-

function brand_drop_down(){
$mainframe =& JFactory::getApplication();
$option = JRequest::getCmd('option');
global $Itemid; 
$database = &JFactory::getDBO();
$sql = "SELECT * from #__toys_products where cat_status='1'  order by cat_sorder Asc";
$database->setQuery($sql);
$rows = $database->loadObjectList();
$list.="";
foreach($rows as $row){
$list.="<option value='".$row->cat_id."' style='padding-left:10px;'>".$row->cat_name."</option>";
}
return $list;

B 的函数是

$database->setQuery($sql);
$rows = $database->loadObjectList();
$list="";
if($rows){
$flg=0;
foreach($rows as $row){
if($row->prod_small_pic!=""){
$img = "uploads/products/".$row->cat_image;
}else{
$img="templates/pioneer_home/images/dvd1.jpg";
}       

我可以看到变量 - list 和 prod_small_pic 没有定义。我认为它们是空字符串。

我的意思是如何定义它们,或者更确切地说是删除这样的错误通知的最佳方法。看到,多个页面上有许多错误通知,但变量不同

4

2 回答 2

1

第 45 行看起来像是在初始化变量,但不是,应该是$list="";

第 80 行在 $row 中查找属性,但它不包含它。也许您没有在查询中选择它?试着print_r($row)看看里面有什么。

另外,global $Itemid;- 是否可以将其作为函数参数?function brand_drop_down($Itemid){

于 2013-08-16T12:07:05.463 回答
1

A的功能:

function brand_drop_down(){
    $mainframe =& JFactory::getApplication();
    $option = JRequest::getCmd('option');
    global $Itemid; 
    $database = &JFactory::getDBO();
    $sql = "SELECT * from #__toys_products where cat_status='1'  order by cat_sorder Asc";
    $database->setQuery($sql);
    $rows = $database->loadObjectList();
    // ***** changed next line
    $list="";
    foreach($rows as $row){
        $list.="<option value='".$row->cat_id."' style='padding-left:10px;'>".$row->cat_name."</option>";
    }
    return $list;
}

功能 B

$database->setQuery($sql);
$rows = $database->loadObjectList();
$list="";
if($rows){
    $flg=0;
    foreach($rows as $row){
        // ***** changed next line
        if(isset($row->prod_small_pic) && $row->prod_small_pic !==""){
            $img = "uploads/products/".$row->cat_image;
        }else{
            $img="templates/pioneer_home/images/dvd1.jpg";
        }
    }
}
于 2013-08-16T13:31:34.937 回答