我正在尝试循环访问我的用户数据库,以便在自己的行中显示表中的每个用户名。我只能让它显示一个用户,但循环显示它的行数。代码如下
<?php
require_once ('../login/connection.php');
include ('functions.php');
$query = "SELECT * FROM users";
$results=mysql_query($query);
$row_count=mysql_num_rows($results);
$row_users = mysql_fetch_array($results);
echo "<table>";
for ($i=0; $i<$row_count; $i++)
{
echo "<table><tr><td>".($row_users['email'])."</td></tr>";
}
echo "</table>";
?>
由于
答案 0 :(得分:15)
mysql_fetch_array获取单行 - 您通常在while循环中使用它来占用结果集中的所有行,例如
echo "<table>";
while ($row_users = mysql_fetch_array($results)) {
//output a row here
echo "<tr><td>".($row_users['email'])."</td></tr>";
}
echo "</table>";
答案 1 :(得分:4)
你只获取一行:
$row_users = mysql_fetch_array($results);
你再也不会再打电话了,所以你并没有真正完成任何事情。
我建议您将循环更改为以下内容:
echo "<table>";
while ($row = mysql_fetch_array($results)) {
echo "<tr><td>".($row['email'])."</td></tr>";
}
echo "</table>";
while循环将遍历结果并将行分配给$ row,直到用完行为止。此时无需处理结果计数。这是循环浏览php中数据库结果的“常用”方法。
答案 2 :(得分:3)
在新的MYSQLI中,我使用了这个编码
onError
答案 3 :(得分:0)
你的问题在这一行:
echo "<table><tr><td>".($row_users['email'])."</td></tr>";
您再次回复<table>
标记。删除它,以便您的代码如下所示:
echo "<table>";
for ($i=0; $i<$row_count; $i++)
{
echo "<tr><td>".($row_users['email'])."</td></tr>";
}
echo "</table>";
答案 4 :(得分:0)
您无需像表格那样在表格中输出表格。
$result = mysql_query("SELECT `email` FROM `users`");
$num_emails = mysql_num_rows($result);
echo "<table><caption>There are/is $num_emails email(s)</caption>";
while ($row = mysql_fetch_assoc($result)) {
echo "<tr><td>{$row['email']}</td></tr>";
}
echo '</table>';
这样的事情应该有用。