空结果功能

时间:2013-04-22 04:54:36

标签: php mysql

我正在建立一个机密网站,但每个类别都有自己的字段,当我生成字段时出现错误页面

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);
}

1 个答案:

答案 0 :(得分:1)

当你以递归方式调用一个函数时,最终应该返回一个值,当你进行递归调用时,你需要返回该值并传递给链。

基本上,您需要做的就是更改行

$this->getCategoryFieldsById($pid); 

return $this->getCategoryFieldsById($pid); 

这将确保在找到值并返回到THIS调用时,THIS调用将值返回到调用方法的原始位置。