我试图让网站从我的数据库中读取一个表,但它只显示了我表的最后一行。此表用于测试,以了解如何读取我的数据库
我要做的是当用户名创建时,表将被更新并显示在网站上。
在stackoverflow中搜索正确答案,但没有任何结果。我做错什么了?
这是我的代码:
<body>
<?php
$host="localhost"; // Host name
$username=""; // Mysql username
$password=""; // Mysql password
$db_name="test"; // Database name
$tbl_name="members"; // Table name
$conn = new mysqli($host, $username, $password, $db_name);
// check connection
if ($conn->connect_error) {
trigger_error('Database connection failed: ' . $conn->connect_error, E_USER_ERROR);
}
//select rows
$sql= 'SELECT id, username, country FROM members';
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0)
{
// output data of each row
while($row = mysqli_fetch_assoc($result))
{
$f1 = $row['id'];
$f2 = $row['username'];
$f3 = $row['country'];
}
} else {
echo "0 results";
}
mysqli_close($conn);
?>
<table border="0" cellspacing="2" cellpadding="2">
<tr>
<td>
<font face="Arial, Helvetica, sans-serif">id</font>
</td>
<td>
<font face="Arial, Helvetica, sans-serif">username</font>
</td>
<td>
<font face="Arial, Helvetica, sans-serif">country</font>
</td>
</tr>
<tr>
<td>
<font face="Arial, Helvetica, sans-serif"><?php echo $f1; ?></font>
</td>
<td>
<font face="Arial, Helvetica, sans-serif"><?php echo $f2; ?></font>
</td>
<td>
<font face="Arial, Helvetica, sans-serif"><?php echo $f3; ?></font>
</td>
<td>
</body>
最佳答案
只输出最后一行。你在这里读每一行:
while($row = mysqli_fetch_assoc($result))
{
$f1 = $row['id'];
$f2 = $row['username'];
$f3 = $row['country'];
}
但你把它们读入同样的变量。因此,每次循环迭代时,都会覆盖这些变量中以前的值因此,这些变量将只包含最后一行的数据。
将输出步骤也放入循环中。从结构上看,它应该是这样的:
/* output HTML table header here */
while($row = mysqli_fetch_assoc($result))
{
$f1 = $row['id'];
$f2 = $row['username'];
$f3 = $row['country'];
/* output HTML table row here */
}
/* output HTML table footer here */
关于php - MySQL仅显示最后数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31787557/