从数据库打印数据时出错;多次打印

时间:2015-04-12 02:02:24

标签: php mysql

我正在使用本地服务器和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}]

有什么问题?

1 个答案:

答案 0 :(得分:1)

这是因为每次循环都会打印整个$output数组。因此,第一次通过循环,您在数组中有一行,并打印它。下次循环时,将第二行添加到数组中,然后打印这两行。在第三次迭代中,您将打印所有3行。等等。

您应该在循环完成后打印数组,而不是在循环内打印。