2013-03-08 72 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