我正在建立一个机密网站,但每个类别都有自己的字段,当我生成字段时出现错误页面
NULL
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /Applications/MAMP/htdocs/test.com/inc/db.inc.php on line 36
这是我使用的功能
function getCategoryFieldsById($cid)
{
$sql = "select * from fields where categoryID = $cid order by fi_order";
$result = $this->query($sql);
$no = $this->getNumRows($result);
if($no)
{ return $result; }
else
{
$pid = $this->getParentId($cid);
if($pid)
$this->getCategoryFieldsById($pid);
else
return 0;
}
}
问题是代表DB行返回NULL,我可以打印$ no并看到有14行但是当进去时if()它看不到数字
select * from fields where categoryID = 35 order by fi_order
0
select * from fields where categoryID = 34 order by fi_order
0
select * from fields where categoryID = 1 order by fi_order
14
NULL
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /Applications/MAMP/htdocs/izomart.com/inc/db.inc.php on line 36
这是我的MySQL功能
function query($query) {
$this->theQuery = $query;
$result=mysql_query($query) or print(mysql_error());
return $result;
}
function getNumRows($result){
return mysql_num_rows($result);
}
答案 0 :(得分:1)
当你以递归方式调用一个函数时,最终应该返回一个值,当你进行递归调用时,你需要返回该值并传递给链。
基本上,您需要做的就是更改行
$this->getCategoryFieldsById($pid);
到
return $this->getCategoryFieldsById($pid);
这将确保在找到值并返回到THIS调用时,THIS调用将值返回到调用方法的原始位置。