我正在使用本地服务器和mysql数据库,并尝试使用PHP在数据库中显示数据。
我的错误是数据没有显示一次,但会多次显示。
这是我的代码
<?php
$con = mysqli_connect('', 'root', '') or die(mysql_error());
$db = mysqli_select_db($con,'busapp') or die(mysql_error());
$sql = mysqli_query($con, "SELECT * FROM bustable");
if($sql === FALSE) {
die(mysql_error()); // TODO: better error handling
}
while($row = $sql->fetch_assoc())
{
$output[]=$row;
print(json_encode($output));
}
mysqli_close($con);
?>
当我在表格中有两个条目时,我得到的数据是这样的:
[{Entry 1}]
,[{Entry 1}]
,[{Entry 2}]
我又添加了一个条目,看看它会如何表现,这就是我所看到的
[{Entry 1}]
,[{Entry 1}]
,[{Entry 2}]
,
[{Entry 1}]
,[{Entry 2}]
,[{Entry 3}]
。
4:
[{Entry 1}], [{Entry 1}], [{Entry 2}],
[{Entry 1}], [{Entry 2}], [{Entry 3}],
[{Entry 1}], [{Entry 2}], [{Entry 3}],
[{Entry 4}]
有什么问题?
答案 0 :(得分:1)
这是因为每次循环都会打印整个$output
数组。因此,第一次通过循环,您在数组中有一行,并打印它。下次循环时,将第二行添加到数组中,然后打印这两行。在第三次迭代中,您将打印所有3行。等等。
您应该在循环完成后打印数组,而不是在循环内打印。