如何在一个页面中多次回显一个数组?

时间:2011-05-21 11:14:38

标签: php echo

我想知道是否有人可以帮我解决这个问题。 我想在同一页面上多次打印/回显函数的解决方案。这可能吗?

这是我的功能:

public function getFeedback($p_iUserid) {

    include("Connection.php"); //open db

    try
    {
        $sql = "select DiaryOpmerkingen, DiaryDoctorcomment from tblDiary 
                WHERE fk_UserId = ".$p_iUserid."
                AND DiaryDay = '".$this->Day."';";
        $rResult = mysqli_query($link, $sql);
        return $rResult;
    }
    catch(Exception $e)
    {
        // no connection database
        $feedback = $e->getMessage();
    }
    mysqli_close($link);
}

这就是我现在设法调用该函数的方法。但它只能运作一次:

if(mysqli_num_rows($feedbackPatient) > 0)
                    {
                        while($oUser = mysqli_fetch_assoc($allUsers))
                        {
                            echo $oUser['DiaryOpmerkingen'];
                        }
                    }

我希望有人可以提供帮助! 不管怎样,谢谢。

3 个答案:

答案 0 :(得分:1)

为您的打印任务创建一个函数,然后根据需要多次调用它:

function print_the_stuff($feedbackPatient){

if(mysqli_num_rows($feedbackPatient) > 0)
                    {
                        while($oUser = mysqli_fetch_assoc($allUsers))
                        {
                            echo $oUser['DiaryOpmerkingen'];
                        }
                    }
}

然后,无论您在哪里打印:

print_the_stuff($feedbackPatient);

答案 1 :(得分:1)

最简单的方法是将整个结果集合在一起,然后传递它。

如果结果集很大,这在性能方面可能代价高昂,但它可能不会产生显着差异。 mySqli扩展程序特别容易,因为您可以使用mysql_fetch_all

public function getFeedback($p_iUserid) {

    include("Connection.php"); //open db

    try
    {
        $sql = "select DiaryOpmerkingen, DiaryDoctorcomment from tblDiary 
                WHERE fk_UserId = ".$p_iUserid."
                AND DiaryDay = '".$this->Day."';";
        $rResult = mysqli_query($link, $sql);
        return mysqli_fetch_all($rResult, MYSQLI_ASSOC);
    }
    catch(Exception $e)
    {
        // no connection database
        $feedback = $e->getMessage();
    }
    mysqli_close($link);
}

然后你会得到一个从getFeedback返回的关联数组,并且可以正常循环:

$feedback = getFeedback($id);
foreach ($feedback as $item) {
    echo $item['DiaryOpmerkingen'];
}

答案 2 :(得分:0)

我认为应该是:

$feedbackPatient = getFeedback($p_iUserid);
    if(mysqli_num_rows($feedbackPatient) > 0)
                        {
                            while($oUser = mysqli_fetch_assoc($feedbackPatient))
                            {
                                echo $oUser['DiaryOpmerkingen'];
                            }
                        }

为什么你使用mysqli_num_rows和sqli_fetch_assoc的diff结果?