无法从循环

时间:2015-06-02 11:07:19

标签: php mysql arrays function class

我有这段代码:

function retrieve_answers($array = array(), $id = null)
{
    include(root_path . '\config.php');
    if($id == null)
    {
        $id = $this->question_id;
    }
    $query = mysqli_query($link, "SELECT * FROM `answers` WHERE `question_id`='$id'");
    if(!mysqli_num_rows($query))
    {
        throw new Exception('Question not found.');
    }
    /* - Retrieves the answer rows
    - Loops through the array
    - Indexes the array and assigns the answerID to the index */
    else
    {
        while($result = mysqli_fetch_array($query))
        {
            for($i=0;$i<mysqli_num_rows($query);$i++) 
            {
                $array[$i] = $result["id"]; 
            }
        }
    }
}

这是班级的一部分。

我想做什么? 我试图接受一个数组作为参数,并为数组赋值,值是与问题链接的answerID。

test.php文件在这里:

<?php
define('root_path', realpath(dirname(__FILE__)));
include(root_path . '\config.php');
require_once(root_path . '\includes\question.class.php');

$q = new Question(3);

$array = array();

$q->retrieve_answers($array);

var_dump($array);
?>

会发生什么? 当我尝试通过转储数组进行调试时,它显示该数组不包含任何内容:

  

array(0){}

我尝试通过类来执行MySQL结果进行调试,并且它确实成功检索了答案ID,所以我非常肯定问题在于数组。

我很乐意得到帮助,提前谢谢。

1 个答案:

答案 0 :(得分:1)

在像这样的函数中返回值

function retrieve_answers($array = array(), $id = null)
{
    include(root_path . '\config.php');
    if($id == null)
    {
        $id = $this->question_id;
    }
    $query = mysqli_query($link, "SELECT * FROM `answers` WHERE `question_id`='$id'");
    if(!mysqli_num_rows($query))
    {
        throw new Exception('Question not found.');
    }
    /* - Retrieves the answer rows
    - Loops through the array
    - Indexes the array and assigns the answerID to the index */
    else
    {
        $i = 0;
        while($result = mysqli_fetch_array($query))
        {
            $array[$i] = $result["id"];                 
            $i++;
        }
    return $array;
    }


}

然后将其作为

$arr = $q->retrieve_answers($array);

var_dump($arr);