2011-12-05 23 views
0
while($row= mysql_fetch_object($result)){ 
    $row->products_price=$row->products_price-($row->products_price*0.05); 
    echo $row->products_id ." ". $row->products_price."<br/>"; 
} 

我怎樣才能把$row->products_id ." ". $row->products_price一行一行地放入一個txt文件?如何將一個MySQL查詢的每個結果逐個放入一個文本文件?

+1

檢查PHP手冊的功能的fopen,fwrite的,FCLOSE等只是http://php.net/fwrite並檢查fopen的參數以追加 – mishu

+0

謝謝,我不知道如何設置fwrite的第二個參數 – down321

+0

查看fopen的手冊頁。 php.net/fopen ..你已經有一個答案,向你展示了一種方法來做到這一點..如果你不想在打開文件時截斷現有的內容,你可以使用「a」..有很多的選項..檢查哪一個是你需要的 – mishu

回答

3
$content = ""; 
while ($row = mysql_fetch_object($result)){ 
    $row->products_price = $row->products_price-($row->products_price * 0.05); 
    $content .= $row->products_id . " " . $row->products_price . "\r\n"; 
} 
file_put_contents("filename.txt", $content, LOCK_EX); 

編輯:(對於ル-新藤一版本)

while ($row = mysql_fetch_object($result)){ 
    $row->products_price = $row->products_price-($row->products_price * 0.05); 
    file_put_contents("filename.txt", $row->products_id . " " . $row->products_price . "\r\n", FILE_APPEND | LOCK_EX); 
} 
+0

這不會一次寫入一行,而是一次寫入整行。 –

+0

是的,這就是爲什麼它更好!如果你一行寫一行,則需要更長的時間。 – noob

+0

+1我不認爲他一次只要求一行,而是一個接一個(就像在新行中的每個結果行中一樣)...... @micha,我編輯了一下你的代碼。 – Shomz

0
$fh = fopen("myfile.txt", "w+"); 
while($row= mysql_fetch_object($result)) 
{ 
    $row->products_price=$row->products_price-($row->products_price*0.05); 
    fwrite($fh, $row->products_id ." ". $row->products_price."\r\n"); 
} 
fclose($fh); 
+0

我認爲模式「w」應該是足夠的,因爲只有寫操作完成。見http://php.net/manual/en/function.fopen.php –

+1

你們爲什麼不轉向更現代的功能?我們有PHP5! http://php.net/manual/en/function.file-put-contents.php – noob

+0

file_put_contents將工作以及... theres超過1種方式實現相同的結果;) – craig1231

相關問題