我有一个mysql数据库,我想执行一个查询,在执行此查询时,数据应该显示在页面中。
所以例如,如果我从查询结果中得到1,000个结果行,我想在执行查询时显示每一行,而不是等到查询完成执行然后立即显示它们。
这是我的PHP代码:
<?php
$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
// Database Name
mysql_select_db("dbname", $con);
$test_query = mysql_query("SELECT * FROM V_Posts where _PID > 100 and _PID < 10000");
while($CHECK_PCID_R = mysql_fetch_array($test_query))
{
echo $CHECK_PCID_R['_PID'] . "<br />";
}
?>
我试过
echo $CHECK_PCID_R['_PID'] . "<br />";
flush();
但它不起作用:(
答案 0 :(得分:1)
一个查询将生成一个数据集,您将同时拥有所有数据。如果您的查询速度很慢,与接收数据的延迟相比,显示数据的任何延迟都会很小。使用flush()
可能会强制服务器发送部分页面,但您实际上只是在修改边缘。
如果你想要打破这个问题,你将不得不运行多个查询,这可能会慢得多,因为你将重复运行相同的查询。这将不必要地加载数据库服务器,并且只会产生轻微的美化效果。
如果您使用AJAX调用来检索数据,则可以在等待时显示“加载”消息。您可以使用多个AJAX调用来逐位显示数据 - 这比在PHP脚本中使用多个查询更糟糕。