2013-03-08 7 views
1

mysql 질의의 반복으로 진행 막대를 업데이트하려고하는데 어떻게 진행 막대를 업데이트 할 수 있는지 그리고 어떻게 행 i를 찾을 수 있는지 어떻게 알 수 있습니까?진행률 표시 줄을 사용하여 PHP를

$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; 

이 : 예를 들어, 인출이

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

} 

하지만 난 어떤 행에 알 수있는 방법 : echo $num_rows; 행 내가 가져온 가지고, 다음이 방법으로 내가 결과를 반복의 수입니다 가져 와서 진행 막대를 업데이트 하시겠습니까? 진행 바를 수행하기위한 좋은 자습서 나 샘플 코드를 아는 사람이 누구입니까? 내가이 발견 : 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

+0

진행률 표시 줄에 대한 설명을하지 않았습니다. 진행률 표시 줄에 총량의 백분율이 표시됩니다. 총량은 얼마입니까? 너 뭐하고있어? – inorganik

+2

[** 새 코드 **에서 mysql_ * 함수를 사용하지 마십시오. http://bit.ly/phpmsql. 그들은 더 이상 유지되지 않으며 [공식적으로 사용되지 않습니다] (http://j.mp/XqV7Lp). [** 빨간색 상자 **] (http://j.mp/Te9zIL)를 참조하십시오. 대신 [* prepared statements *] (http://j.mp/T9hLWi)에 대해 알아보고 [PDO] (http://php.net/pdo) 또는 [MySQLi] (http://php.net/)를 사용하십시오. mysqli) - [이 기사] (http://j.mp/QEx8IB)는 어떤 결정을 내리는 데 도움이 될 것입니다. – Kermit

답변

2

주석에서 언급했듯이 진행률 표시 줄을 사용해야하는 경우에는 느린 쿼리 여야합니다.

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

    //Do seomthing with the row 

} 

을 그리고 문서에서 언급 한 바와 같이 다음을 수행하십시오이 경우

, 당신은 당신의 루프에 간단한 카운터를 추가 할 수 있습니다.

+0

게임에 늦었지만 쿼리가 진행되는 동안 백분율이 인쇄되지 않거나 에코되는 것은 무엇을 의미합니까? 쿼리 및 페이지 로딩이 끝나면 모든 백분율이 끝까지 에코됩니다. – leoarce

+0

테스트 방법을 잘 모르겠지만 출력 버퍼링과 관련이있을 수 있습니다. https://stackoverflow.com/questions/8882383/how-to-disable-output-buffering-in-php –

관련 문제