Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 循环数据库并显示在表中_Php_Mysql - Fatal编程技术网

Php 循环数据库并显示在表中

Php 循环数据库并显示在表中,php,mysql,Php,Mysql,我正在尝试循环遍历我的用户数据库,以便在表中的每个用户名各自的行中显示它们。我只能让它显示一个用户,但通过循环可以看到其中的行数。代码如下 <?php require_once ('../login/connection.php'); include ('functions.php'); $query = "SELECT * FROM users"; $results=mysql_query($query); $row_count=mysql_num_rows($results); $r

我正在尝试循环遍历我的用户数据库,以便在表中的每个用户名各自的行中显示它们。我只能让它显示一个用户,但通过循环可以看到其中的行数。代码如下

<?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>";
?>


谢谢

您的问题在这一行:

echo "<table><tr><td>".($row_users['email'])."</td></tr>";
echo”“($row_用户['email']);
你又在回显一个
标记。删除该选项,使您的代码如下所示:

echo "<table>";
    for ($i=0; $i<$row_count; $i++)
    {
    echo "<tr><td>".($row_users['email'])."</td></tr>";
    }
echo "</table>";
echo”“;
对于($i=0;$i获取一行-您通常在while循环中使用它来获取结果集中的所有行,例如

echo "<table>";

while ($row_users = mysql_fetch_array($results)) {
    //output a row here
    echo "<tr><td>".($row_users['email'])."</td></tr>";
}

echo "</table>";
echo”“;
while($row\u users=mysql\u fetch\u array($results)){
//在这里输出一行
echo“($row_用户['email'])”;
}
回声“;

您只获取了一行:

$row_users = mysql_fetch_array($results);
你再也不会调用fetch了,所以你不会真的循环任何东西

我建议将循环更改为以下内容:

echo "<table>";
while ($row = mysql_fetch_array($results)) {
    echo "<tr><td>".($row['email'])."</td></tr>";
}
echo "</table>";
echo”“;
while($row=mysql\u fetch\u数组($results)){
回显“($row['email'])”;
}
回声“;

while循环将循环遍历结果并将一行分配给$row,直到行用完为止。此外,无需处理在该点获取结果计数的问题。这是在php中循环遍历来自DB的结果的“常用”方法。

您不需要以这种方式输出表中的表

$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>';
$result=mysql\u查询(“从“用户”中选择“电子邮件”);
$num\u emails=mysql\u num\u行($result);
echo“有/有$num_电子邮件”;
while($row=mysql\u fetch\u assoc($result)){
回显“{$row['email']}”;
}
回声';

类似的东西应该可以工作。

在新的MYSQLI中,我使用这种编码

$query = "SELECT * FROM users";
$results=mysqli_query($con,$query);
$row_count=mysqli_num_rows($results);

echo "<table>";
while ($row = mysqli_fetch_array($results)) {
echo "<tr><td>".($row['id'])."</td></tr>";
}
echo "</table>";

mysqli_query($con,$query); 
mysqli_close($con);
$query=“从用户中选择*”;
$results=mysqli\u查询($con,$query);
$row\u count=mysqli\u num\u行($results);
回声“;
while($row=mysqli\u fetch\u数组($results)){
回显“($row['id'])”;
}
回声“;
mysqli_查询($con,$query);
mysqli_close($con);

过时的答案,请确保使用MySQLi而不是MySQL