Вопрос по PHP и запросу в БД

SF
На сайте с 12.11.2011
Offline
103
392

Необходимо вывести записи из БД построчно в файл.

$result = mysql_query($query)

or die('query failed');
if (mysql_num_rows($result) > 0)
{
while ($row = mysql_fetch_assoc($result))
{
file_put_contents($file, $row['ip'].':'.$row['port'].'<br />');
}
}

Выводится только 1 значение, подскажите почему?

SV
На сайте с 18.03.2009
Offline
68
#1

Вы в файл перезаписываете просто последнее значение, а нужно дописывать в конец существующего файла

Можно сделать так:


file_put_contents($file, $row['ip'].':'.$row['port'].'<br />', FILE_APPEND | LOCK_EX);

Можно обойтись без LOCK_EX, если версия php не позволяет (5.1+)

SF
На сайте с 12.11.2011
Offline
103
#2

Спасибо! Помогло :)

SV
На сайте с 18.03.2009
Offline
68
#3
SniFFeRok:
Спасибо, помогло, вопрос еще один, я записываю в txt файл, как вывести в него построчно?(Каждая запись с новой строки)

Что-то из этих 3-х вариантов должно сработать


file_put_contents($file, $row['ip'].':'.$row['port'].'\n', FILE_APPEND | LOCK_EX);


file_put_contents($file, $row['ip'].':'.$row['port'].'\r\n', FILE_APPEND | LOCK_EX);


file_put_contents($file, PHP_EOL.$row['ip'].':'.$row['port'].'\n', FILE_APPEND | LOCK_EX);
TF-Studio
На сайте с 17.08.2010
Offline
334
#4

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

имхо.

Всё ещё лучший способ заработка для белых сайтов: GoGetLinks (https://www.gogetlinks.net/?inv=fahbn8).

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий