[英]php notices of Undefined Variable & Trying to get property of non-object
Am learning & executing php by working on Joomla project How to Improve this code & resolve the PHP Notices - Any suggestions - solutions - well appreciated !! 我正在通过Joomla项目学习和执行php如何改进此代码并解决PHP通知 - 任何建议 - 解决方案 - 非常感谢!!
Notice : Undefined variable: cond in*/home/mygames/public_html/components/com_toys/models/category.php on line 140 (which is $sql line)* 注意 :未定义的变量:第140行的* / home / mygames / public_html / components / 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";
Notice : Trying to get property of non-object in /home/truecar7/public_html/components/com_toys/models/category.php on line 200 注意 :尝试在第200行的/home/truecar7/public_html/components/com_toys/models/category.php中获取非对象的属性
Line 200 is return $row->id; 第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;
}
Edit 编辑
Hello Lodder & Elin, it works but like this, else it's showing undefined variable notice for row on return $row line. 你好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;
}
For your Undefined Notice
, You have to modify your codes like this 对于Undefined Notice
,您必须像这样修改您的代码
$cond = '';
if($Carmodel!="") {
$cond = " and prod_id='$Carmodel' ";
}
For Trying to get property of non-object
Notice : I think $row
is empty that is why throws notice.Check $row
Trying to get property of non-object
注意:我认为$row
是空的,这就是为什么抛出notice.Check $row
var_dump($row);
Problem : 问题:
$database->loadObject(); // This line
Try using the following. 尝试使用以下内容。 I have made some changes to your function and used Joomla 2.5 coding standards for the database query. 我对您的函数进行了一些更改,并使用Joomla 2.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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.