Am learning&通过Joomla项目执行php如何改进此代码&解决PHP通知-任何建议-解决方案-非常感谢!!
注意:未定义的变量:第140行*/home/mygames/public_html/contensions/com_toys/models/category.php中的cond(这是$sql行)*
function loadSubCat($id,$Carmodel,$minprice,$maxprice){
$mainframe =& JFactory::getApplication();
$option = JRequest::getCmd('option');
$database =& JFactory::getDBO();
global $Itemid;
if($Carmodel!="")
$cond=" and prod_id='$Carmodel' ";
$sql = "Select * from #__toycar_products Where prod_cat_id='".$id."' $cond and prod_status='1' and prod_id in (select v_prod_id from #__toycar_variants) Order By prod_sorder";
注意:正在尝试获取第200行上/home/truecar7/public_html/contensions/com_toys/models/category.php中非对象的属性
第200行返回$row->id;
function getItemIdByName($Name){
$mainframe =& JFactory::getApplication();
$option = JRequest::getCmd('option');
$database =& JFactory::getDBO();
$sql = "Select id from #__menu Where name = '".$Name."'";
$database->setQuery($sql);
$row = $database->loadObject();
return $row->id;
}
编辑
你好Lodder&Elin,它是有效的,但像这样,否则它在返回$row行上显示行的未定义变量通知。
function getItemIdByName($Name){
$db = JFactory::getDBO();
$query = $db->getQuery(true);
$query->select('*')
->from('#__menu')
->where('id = ' . $db->quote($Name));
$db->setQuery($query);
$rows = $db->loadObjectList();
foreach ($rows as $row){
$row = $row->msg;
}
$row='';
return $row;
}
尝试使用以下方法。我对您的函数进行了一些更改,并在数据库查询中使用了Joomla2.5编码标准。
$Name = "XXXXXXXXX"; //define the name variable
function getItemIdByName($Name){
$db = JFactory::getDBO();
$query = $db->getQuery(true);
$query->select('*')
->from('#__menu')
->where('id = ' . $db->quote($Name));
$db->setQuery($query);
$rows = $db->loadObjectList();
foreach ($rows as $row){
$row = $row->msg;
}
return $row;
}
echo getItemIdByName($Name); //echo the result of the function
对于您的Undefined Notice
,您必须像这样修改您的代码
$cond = '';
if($Carmodel!="") {
$cond = " and prod_id='$Carmodel' ";
}
对于Trying to get property of non-object
通知:我认为$row
是空的,这就是抛出通知的原因。检查$row
var_dump($row);
问题:
$database->loadObject(); // This line