2013-03-08 74 views
1

我想更新一个进度条的迭代的一个MySQL查询,我不明白我怎么可以更新进度条,以及如何我可以找到什么数量的行我要取,例如:进度条与MySQL的MySQL查询

$query = 'SELECT tvshows.genres, tvshows.id_show FROM tvshows where tvshows.genres is not NULL'; 
$result = mysql_query($query); 

$num_rows = mysql_num_rows($result); 
echo $num_rows; 

这样的:echo $num_rows;是行我要取,然后以这种方式我重复结果的数量:

while ($db_row = mysql_fetch_assoc($result)) 
{ 
    //Do seomthing with the row 

} 

,但我怎么能在哪一行知我获取更新,然后进度条?任何人都知道一个很好的教程或示例代码来做一个进度条?我发现这一点:http://w3shaman.com/article/php-progress-bar-script

但例如要求这些:

for($i=1; $i<=$total; $i++){ 
// Calculate the percentation 
$percent = intval($i/$total * 100)."%"; 

,我不知道如何用PHP查询的结果让,任何人都可以帮我吗?

+0

您需要对脚本进行ajax调用并将数据返回给客户端以产生任何类型的进度输出。但任何类型的进度显示都会减慢实际过程。在你真的需要任何进展之前,查询可能会在大多数数据库上完成。编辑:忘了你可以刷新输出到浏览器作为链接描述 – StrikeForceZero 2013-03-08 16:01:04

+0

你没有解释你的进度条是什么 - 进度条显示总金额的百分比 - 你的总金额是多少?你在测量什么? – inorganik 2013-03-08 16:01:26

+2

[**请不要在新代码中使用'mysql_ *'函数**](http://bit.ly/phpmsql)。他们不再被维护[并且被正式弃用](http://j.mp/XqV7Lp)。看到[**红框**](http://j.mp/Te9zIL)?学习[*准备的语句*](http://j.mp/T9hLWi),并使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [这篇文章](http://j.mp/QEx8IB)将帮助你决定哪个。 – Kermit 2013-03-08 16:11:12

回答

2

正如在评论中提到的,如果您需要使用进度栏,它应该是一个非常慢的查询。

如果是这样,你可以只添加一个简单的计数器,以你的循环:

$i = 0; 
while ($db_row = mysql_fetch_assoc($result)) 
{ 
    $i++; 
    $percent = intval($i/$num_rows * 100)."%"; 

    //Do seomthing with the row 

} 

然后做在文章中提到。

+0

迟到游戏,但是当查询发生时百分比不打印/回显是什么意思?当查询和页面加载完成时,所有百分比在最后回显。 – leoarce 2017-12-15 15:36:08

+0

我不确定你是如何测试这个的,但它可能与输出缓冲有关? https://stackoverflow.com/questions/8882383/how-to-disable-output-buffering-in-php – 2018-01-22 15:12:08