Запись в файлы из базы

  • Автор темы Автор темы tarweb
  • Дата начала Дата начала

tarweb

Новичок
Как выбрать из полей таблицы значения и записать их в соответствующие файлы, чтобы эти значения обновлялись в файлах но не добавлялись.
Например таблицы под названием "lang_en"
из поля "en" в файл "en.php"
Например таблицы под названием "lang_ru"
из поля "ru" в файл "ru.php"
 
прочитать данные из базы
открыть файл на запись
записать
 
Вот написал и не правильно пишет:
PHP:
$lang = glob($path_lang."*", GLOB_ONLYDIR);
$count_lang = count($lang);
 
foreach ($lang as $dir)
{              
if ((is_dir($path_lang)==TRUE)&&($path_lang!='.' && 

$path_lang!='..' ))
{          
$dirs = basename($dir);
}                  
 
for ( $i=1; $i<=$count_lang; $i++ )
{
$r = $db->query ( "SELECT * from lang_$dirs WHERE 

id='$i' order by id" ) or die (mysql_error());        
$fo = $db->fetcharray($r);
 
$menu_lang = '$lang_'.$fo[link].' = "'.$fo[name_top].'";';
 
echo "$i...$dirs...$menu_lang<br>";
//Здесь вывод нормальный
/*
К примеру:
1...en...$lang_404 = "None found";
2...en...$lang_index = "Home";
3...en...$lang_ralty = "Real Estate";
1...ru...$lang_404 = "Ничего не найдено";
2...ru...$lang_index = "Главная";
3...ru...$lang_ralty = "Недвижимость";
1...uk...$lang_404 = "Нічого не знайдено";
2...uk...$lang_index = "Головна";
3...uk...$lang_ralty = "Нерухомість";
*/
 
//Как здесь сделать, чтобы не дописовались, а переписовались файлы ???

$temp_lang    = file_get_contents("lang/temp_$dirs.php");      
$fp1 = fopen ("./../lang/$dirs/$dirs.php", "a");
flock($fp1,LOCK_EX);
fwrite($fp1,$menu_lang."\n");
fwrite($fp1,$temp_lang);
fflush($fp1);
flock($fp1,LOCK_UN);
fclose($fp1);
 
}
 
}
 
$fp1 = fopen ("./../lang/$dirs/$dirs.php", "a");- в этой строчке буковка а что означает?
 
$fp1 = fopen ("./../lang/$dirs/$dirs.php", "a");- в этой строчке буковка а что означает?

С буквочкой "w" будет записывать один раз

Например:
1...en...$lang_404 = "None found";

1...ru...$lang_404 = "Ничего не найдено";

1...uk...$lang_404 = "Нічого не знайдено";


*/
 
Только не пишите, пожалуйста, что я себе придумал гемор - как на предыдущем форуме.
И чтобы я не заморачивался с файлами - мне так надо !
 
чтобы не дописовались, а переписовались файлы ???

в этой строчке буковка а что означает?
С буквочкой "a" дописует в файл

С буквочкой "w" переписует файл (В мое случае - будет записывать ТОЛЬКО один раз)
Например:
В файл "en"
$lang_404 = "None found";
В файл "ru"
$lang_404 = "Ничего не найдено";
В файл "uk"
$lang_404 = "Нічого не знайдено";

Мне надо чтобы писало: (следующая запись переписывалась)
В файл "en"
$lang_404 = "None found";
$lang_index = "Home";
$lang_ralty = "Real Estate";
В файл "ru"
$lang_404 = "Ничего не найдено";
$lang_index = "Главная";
$lang_ralty = "Недвижимость";
В файл "uk"
$lang_404 = "Нічого не знайдено";
$lang_index = "Головна";
$lang_ralty = "Нерухомість";

А вы какую буквочку предлагаете

Вопрос - как правильно сделать (я не могу придумать)
 
ну, лично я бы предложил открывать файл один раз, а не 100500.
 
В моем случае это не возможно, так как есть несколько таблиц и файлов
 
я бы поостерёгся употреблять слово "невозможно" в данном контексте
 
открыли файл
записали в него все что надо
закрыли файл
 
Если отрывавать файл из вне - то будет ошибка (Warning: flock(): 57 is not a valid stream resource)
Как раз в контексте $dirs должен быть fopen.
 
я не понимаю, что значит "открывать файл извне".
я вообще не понимаю, какие могут быть проблемы с такой примитивной операцией, как запись в файл.
зачем было изобретать такой сложный механизм - для меня загадка.
 
я не понимаю, что значит "открывать файл извне".

Извне массива foreach

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

Читайте первый пост
Как выбрать из полей таблицы значения и записать их в соответствующие файлы, чтобы эти значения обновлялись в файлах но не добавлялись.
Например таблицы под названием "lang_en"
из поля "en" в файл "en.php"
Например таблицы под названием "lang_ru"
из поля "ru" в файл "ru.php"
 
Читайте первый ответ
прочитать данные из базы
открыть файл на запись
записать
задача не сложнее, чем ложку до рта донести.
где там можно найти для себя трудности - для меня загадка.
 
Я так и делаю:

В for прочитал перебором из таблиц базы, в соответствии $dirs
Вывел данные в $menu_lang

Дальше прошу помощи а не полемики.
 
Сверху