这是我向用户显示角色的功能" php"在database.Problem中,如果我在函数中使用echo,在html页面中一切正常。 如果我改变了#echo;#34;到"返回"并输入HTML我只得到第一行。
Echo示例:
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>';
}
}
}
答案 0 :(得分: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;
}
答案 1 :(得分:1)
当您返回值时,您将退出该功能。也就是说,退出循环。这就是为什么你只得到一行。