2012-02-18 18 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

+0

ファイルを書き込むためだけにすべてのレコードを選択しないのはなぜですか? –

+0

すべての初期結果をテキストファイルに保存したい場合は、テキストファイルに上書きや重複を作成せずに新しい結果を追加することができます。 – user1190466

答えて

1

まずあなたがこれまではこれをやりたいが、ここで私はそれを行うだろうかあるだろう、なぜ、私は想像することはできません。

各レコードには、いずれかの列にタイムスタンプも格納されます。新しいレコードを書くためにDBを照会するたびに、タイムスタンプがフラット・ファイルの最終更新時刻よりも遅いレコードだけを取得するクエリを実行します。フラットファイルはあなたが書いているファイルです。

単純なfilemtime($ filename)を使用すると、ファイルの最終更新時刻を取得できます。

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

あなたは同様にそれに追加するこれらの書き込みがトリガされているかに応じて、前のファイルのロックを取得したい場合があります。

関連する問題