我想知道是否有人可以帮我解决这个问题。 我想在同一页面上多次打印/回显函数的解决方案。这可能吗?
这是我的功能:
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'];
}
}
我希望有人可以提供帮助! 不管怎样,谢谢。
答案 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结果?