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

당신은뿐만 아니라 여기에 추가이 쓰기가 트리거되는 방법에 따라 전에 파일에 대한 잠금을 얻을 수도 있습니다.