2014-10-11 4 views
0

ArsehBaigany 레코드가 10000000 개이고 이고 모든 레코드를 ArsehBaigany으로 업데이트하려고합니다.업데이트 데이터베이스 중에 진행률 표시 줄 표시

PHP 코드 : 스크립트가 완료되면

 $ArsehBaiganyRows=$dbHandle ->query("select from ArsehBaigany where code like '2'"); 
    echo "<br>Start...<br/>"; 
    $i=1; 
    foreach($ArsehBaiganyRows as $ArsehBaiganyRow) 
    { 

     $query="update ArsehBaigany 
           set Daste='183837732828',Noe='33992928487839002' 
           where 
           Code='".$ArsehBaiganyRow["code"]."' "; 

     $update=$dbHandle->query($query); 
     if(empty($update)) 
     { 
      echo "<span style='color:red'>error".$i++."</span><br>".$query;     
     } 
     else 
      echo "ok"; 

     //rename file 

     $fromFile= trim($ArsehBaiganyRow["ext"]) ; 
     $toFile=trim($uploadDir) ; 
     if(file_exists($fromFile)) 
     { 
      $renname= rename($fromFile, $toFile) ; 
      if($renname) 
      { 
       echo "ok ";   
      } 
      else 
       echo "<span style='color:red'>error</span>"; 

     } 

     echo "<br/>next file<br/>"; 

     flush(); 
    } 

    echo "<br>finish<br/>"; 

는, 브라우저가 자동으로 닫힙니다. 왜 echo가 작동하지 않습니까? 스크립트가 끝나면 표시됩니다.

실시간으로 오류를 표시하고 싶습니다. 및 진행률 표시 줄에 어떻게 추가 할 수 있습니까? 내가 당신이 브라우저에 에코 메시지를 다시 작성할 수 없습니다 알고 ...

답변

0
$ArsehBaiganyRows=$dbHandle ->query("select from ArsehBaigany where code like '2'"); 

if (ob_get_level() == 0) 
    ob_start(); 

echo "<br>Start...<br/>"; 
echo str_pad('', 4096); 
ob_flush(); 
flush(); 
$i=1; 
foreach($ArsehBaiganyRows as $ArsehBaiganyRow) 
{ 

    $query="update ArsehBaigany 
           set Daste='183837732828',Noe='33992928487839002' 
           where 
           Code='".$ArsehBaiganyRow["code"]."' "; 

    $update=$dbHandle->query($query); 
    if(empty($update)) 
    { 
     echo "<span style='color:red'>error".$i++."</span><br>".$query; 
     echo str_pad('', 4096); 
     ob_flush(); 
     flush(); 
    } 
    else 
    { 
     echo "ok"; 
     echo str_pad('', 4096); 
     ob_flush(); 
     flush(); 
    } 

    //rename file 

    $fromFile= trim($ArsehBaiganyRow["ext"]) ; 
    $toFile=trim($uploadDir) ; 
    if(file_exists($fromFile)) 
    { 
     $renname= rename($fromFile, $toFile) ; 
     if($renname) 
     { 
      echo "ok "; 
      echo str_pad('', 4096); 
      ob_flush(); 
      flush(); 
     } 
     else 
     { 
      echo "<span style='color:red'>error</span>"; 
      echo str_pad('', 4096); 
      ob_flush(); 
      flush(); 
     } 

    } 

    echo "<br/>next file<br/>"; 
    echo str_pad('', 4096); 
    ob_flush(); 
    flush(); 
} 

echo "<br>finish<br/>"; 
ob_end_flush(); 

! 프로세스가 끝나면 메시지를 보여라!?
+0

이 코드는 나를 위해 작동하지 않습니다에서 때문에, 자바 스크립트를 사용하는 데 필요한 ProgressBar의 – ashkufaraz

+0

sleep (1)을 사용하면이 코드가 작동합니다. – ashkufaraz

관련 문제