2014-05-24 111 views
-1

這是我的功能,顯示用戶在數據庫中的白色角色「php」。問題是如果我在功能和HTML頁中使用回聲一切工作正常。 如果我將「回聲」更改爲「返回」,並放在HTML中,我只得到第一行。函數返回和回聲

回聲例如:

function showMembersPhp($mysqli) 
{ 
    $statement = $mysqli->query("SELECT * FROM members"); 
    while($row = $statement->fetch_array()){ 
    if ($row['role'] == 'php') { 
     echo '<tr class="odd gradeX"> 
       <td>'.$row['username'].'</td> 
       <td>'.$row['email'].'</td> 
       <td>'.$row['last_online'].'</td> 
       <td class="center">'.$row['last_ip'].'</td> 
      </tr>'; 
     }             
    } 
} 

返回例如:

function showMembersPhp($mysqli) 
{ 
    $statement = $mysqli->query("SELECT * FROM members"); 
    while($row = $statement->fetch_array()){ 
    if ($row['role'] == 'php') { 
     return '<tr class="odd gradeX"> 
       <td>'.$row['username'].'</td> 
       <td>'.$row['email'].'</td> 
       <td>'.$row['last_online'].'</td> 
       <td class="center">'.$row['last_ip'].'</td> 
      </tr>'; 
     }             
    } 
} 

回答

1

當你返回一個值,你退出功能。也就是說,退出循環。這就是爲什麼你只有一行。

2

使用這樣的局部變量,然後返回它,你遍歷整個數組後:

function showMembersPhp($mysqli) 
{ 
    $ret = ""; 
    $statement = $mysqli->query("SELECT * FROM members"); 
    while($row = $statement->fetch_array()){ 
    if ($row['role'] == 'php') { 
     $ret = $ret. '<tr class="odd gradeX"> 
       <td>'.$row['username'].'</td> 
       <td>'.$row['email'].'</td> 
       <td>'.$row['last_online'].'</td> 
       <td class="center">'.$row['last_ip'].'</td> 
      </tr>'; 
     }             
    } 
    return $ret; 
}