Запись результатов SQL-запроса в текстовый файл - PullRequest
1 голос
/ 19 февраля 2012

Я пытаюсь записать результаты запроса 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);

}

1 Ответ

1 голос
/ 19 февраля 2012

Во-первых, я не могу себе представить, почему вы бы захотели сделать это, но вот как я это сделал бы.

для каждой записи также сохраняйте отметку времени в одном из столбцов. всякий раз, когда вы запрашиваете в БД новые записи для записи, вы выполняете запрос, который захватывает только записи, временные метки которых превышают время последнего изменения плоского файла. Разумеется, плоский файл - это файл, в который вы записываете.

вы можете использовать простое filemtime ($ filename), чтобы получить время последнего изменения вашего файла.

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

вы можете захотеть заблокировать файл перед добавлением к нему, а также в зависимости от того, как эти записи инициированы.

...