2013-08-19 34 views
0

我想從數據庫中獲取表格,然後通過文件(每個文件中有50個條目)打破輸出數據:list01.txt,list02.txt ...但不知何故,我在這個問題上堆積如何更有效地打破數據。打破查詢數據到幾個文件

if ($result = $mysqli->query($query)) { 

    icount = 0; 
    while ($row = mysqli_fetch_array($result)) { 
     if (icount % 50 == 0) { 
      $snum = int(icount/50); 
      $filename = 'scripts/spisok'.$snum.'.txt'; 
      $handle = fopen($filename, 'w'); 
     } 
     fwrite($filename, $row['uname'].';'.$row['email'].'<br />'); 
     icount++; 
    } 

    echo 'ok'; 
    $result->free(); 

} 

我能剛剛突破$結果爲50,進入陣列先寫出來呢?對不起,即時通訊新手到PHP

+0

你是做什麼的DB數據發生變化時? – 2013-08-19 20:59:50

+1

不要忘記關閉文件句柄。 –

+1

您似乎在每個地方都缺少'icount'前面的'$',並且應該將'fwrite()'文件句柄('$ handle')作爲其第一個參數而不是文件名。 –

回答

0

你在做什麼沒有什麼特別的錯,除了一些語法錯誤在這裏和那裏。

試試這個: -

if ($result = $mysqli->query($query)) { 

    $icount = 0; 
    $handle = NULL; 
    while ($row = mysqli_fetch_array($result)) { 
     if ($icount % 50 == 0) { 
      if ($handle !== NULL) { 
       fclose($handle); 
      } 
      $snum = int($icount/50); 
      $filename = 'scripts/spisok'.$snum.'.txt'; 
      $handle = fopen($filename, 'w'); 
     } 
     fwrite($handle, $row['uname'].';'.$row['email'].'<br />'); 
     $icount++; 
    } 

    fclose($handle); 
    echo 'ok'; 
    $result->free(); 

} 
+0

謝謝!當然,我忘了關閉處理 – Lambrusco