2012-02-18 124 views
1

我正在嘗試將SQL查詢的結果寫入文本文件。寫入工作正常,但我希望能夠第一次寫入所有條目,並隨後添加
所有不在文件中的條目。請你知道這可以實現嗎?將SQL查詢結果寫入文本文件

$t = mysql_query("SELECT text FROM transactions") 
     or die("SELECT Error: ".mysql_error()); 


print "<table width=300 border=1>\n"; 
while ($get_info = mysql_fetch_row($t)){ 

$class = $op->classify($field); 

print "<tr>\n"; 
print "\t<td>Transaction</td>\n"; 
foreach ($get_info as $field) 
print "\t<td>$field</td>\n"; 
print "\t<td>Type</td>\n"; 
foreach ($get_info as $field) 
print "\t<td>$class</td>\n"; 
print "</tr>\n"; 


if ($class == "pos") 
{ 
$filep = "positive.txt"; 
$handlep = fopen($filep, 'a'); 
$data = "$field\n"; 
fwrite($handlep, $data); 

fclose($handlep); 


} 
if ($class == "neg") { 

$filen = "negative.txt"; 
$handlen = fopen($filen, 'a'); 
$datan = "$field\n"; 
fwrite($handlen, $datan); 

fclose($handlen); 

} 
+0

你的計劃到底是什麼。這聽起來對我來說是個壞主意! – markus 2012-02-18 23:49:03

+0

爲什麼不選擇所有記錄只寫文件? – 2012-02-18 23:51:50

+0

我想將所有的初始結果保存到文本文件中,當結果可用時可以添加新的結果而不覆蓋或在文本文件中創建重複項。 – user1190466 2012-02-18 23:51:59

回答

1

第一,我無法想象,爲什麼你會永遠要做到這一點,但這裏是我會怎麼做。

與每個記錄,也存儲在其中一列的時間戳。每當您查詢數據庫以查找要寫入的新記錄時,您都會執行只抓取時間戳晚於平面文件上次修改時間的記錄的查詢。平面文件當然是你正在寫入的文件。

您可以使用簡單的filemtime($ filename)來獲取文件的上次修改時間。

http://php.net/manual/en/function.filemtime.php

你可能要追加到它,以及根據這些寫是如何觸發之前得到的文件上的鎖。