0

我有一个 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();

但它没有工作:(

4

1 回答 1

1

一个查询将产生一个数据集,您将一次获得所有数据。如果您的查询很慢,那么与接收数据的延迟相比,显示数据的任何延迟都会很小。使用flush()可能会迫使服务器发送部分页面,但您实际上只是在边缘修补。

如果你想打破它,你将不得不运行多个查询,这可能会慢得多,因为你将重复运行相同的查询。这将不必要地加载数据库服务器,并且只会起到很小的修饰效果。

如果您使用 AJAX 调用来检索数据,您可以在等待时显示“正在加载”消息。您可以使用多个 AJAX 调用来逐位显示数据 - 这比在 PHP 脚本中使用多个查询更糟糕。

于 2013-09-13T20:45:42.030 回答