Не могу записать данные из бд в файл

foxman

Guest
Не могу записать данные из бд в файл

Проблема в следующем:
получаю днные из бд, после этого мне надо записать все это в файл.
Вот кусок кода
===================
$query="select id, name, parent_id from cms_pages order by id";
$res= mysql_query($query, $link );
while ($row=mysql_fetch_assoc($res))
{
foreach ($row as $val)
{


print "$val<br>";
}

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

========

touch("1.txt");
$fn="1.txt";
$fp=fopen($fn, 'w') or die ("Cant open");
fwrite ($fp, $val);
fclose ($fp);
-------------------------------

Я понимаю, что тут вроде бы ничего сложного, но вот завис на этом.
Заранее благодарен за совет
 

foxman

Guest
Да согласен, запостил не по месту и тем не менее сам не нашел ошибку, пока не хватает знаний.
Вопрос по другому попробую задать.

Как из массива записать данные в файл?
Спасибо
 

Фанат

oncle terrible
Команда форума
точно так же, как на экран выводить.
ты, почему-то, на экран выводишь в цикле, а в файл записываешь - без.
 

foxman

Guest
А как записать в файл в цикле?
Подскажи плиз.
 

Фанат

oncle terrible
Команда форума
ТОЧНО ТАК ЖЕ, как и вывод на экран!
скажи, у тебя вывод на экран в цикле вопросов не вызывал?
ты сам его написал?
почему ты не можешь точно так же в цикле писать в файл?
как т вызывал в цикле команду вывода на экран - почему точно так же в цикле не можешь вызывать команду записи в файл?!
 

foxman

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

yugene

Отошел от дел
1. ты можешь сделать
while (что-то)
{
"действие А";
}

2. ты можешь сделать "действие Б";

3. так почему ты не можешь "действие А" заменить на "действие Б"?
 

foxman

Guest
Я так и сделал, но в файл выводилась только последняя запись.
Проблема решилась после того как изменил
$fp=fopen($fn, 'w')
на
$fp=fopen($fn, 'a')
Спасибо за помощь
 

yugene

Отошел от дел
Кстати, из всего кода

touch("1.txt");
$fn="1.txt";
$fp=fopen($fn, 'w') or die ("Cant open");
fwrite ($fp, $val);
fclose ($fp);

внутри цикла достаточно оставить только

fwrite ($fp, $val);
 

foxman

Guest
yugene
Спасибо за помощь. Кстати не подскажешь почему в режиме записи в файл (w) в него записывается только последняя строчка?
 

yugene

Отошел от дел
смотри описание функции fopen(). ее второй параметр

'w' - Open for writing only; place the file pointer at the beginning of the file and truncate the file to zero length. If the file does not exist, attempt to create it.
'a' - Open for writing only; place the file pointer at the end of the file. If the file does not exist, attempt to create it.
 
Сверху