2011-05-21 6 views
4

誰かが私にこの問題を助けることができるかどうか疑問に思っていました。 同じページに複数の機能の解を印刷/エコーしたいと思います。それは可能ですか?アレイを1ページに複数回エコーする方法は?

は、ここに私の機能です:

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); 
+0

ありがとうたくさんの男!私は約3日間これを探していた。ありがとう! –

+0

'$ allUsers'はどこから来たのですか?これは確かにこの機能の範囲内にはありません。また、これから1回の呼び出しで、MySQLの結果セットが空になります。繰り返しはできません。 – Matt

+0

結果が出るはずのページで、私はこれを行います: $ allUsers = $ oUser-> getFeedback($ _ SESSION ['id']); –

1

これを行うための最も簡単な方法おそらく、全体の結果を一度に取得し、それを周りに渡すことです。

結果セットが大きい場合は、パフォーマンス面でコストがかかる可能性がありますが、おそらく大きな違いはありません。 mysql_fetch_allを使用できるので、mySqli拡張で特に簡単です。あなたはその後、通常のように、このループスルー連想配列がgetFeedbackから返さ取得し、できたでしょう

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

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

なぜuが使用されています

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

これは私に "致命的なエラーを与えます:/Users/Kim/Sites/snooze/classes/User.class.phpの350行目にある未定義の関数mysqli_fetch_all()を呼び出してください。" –

0

私はそれがあるべきだと思いますmysqli_num_rowsとsqli_fetch_assocの差分結果?

関連する問題