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

tarweb

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

Фанат

oncle terrible
Команда форума
прочитать данные из базы
открыть файл на запись
записать
 

tarweb

Новичок
Вот написал и не правильно пишет:
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);
 
}
 
}
 

Фанат

oncle terrible
Команда форума
$fp1 = fopen ("./../lang/$dirs/$dirs.php", "a");- в этой строчке буковка а что означает?
 

tarweb

Новичок
$fp1 = fopen ("./../lang/$dirs/$dirs.php", "a");- в этой строчке буковка а что означает?

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

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

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

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


*/
 

tarweb

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

tarweb

Новичок
чтобы не дописовались, а переписовались файлы ???

в этой строчке буковка а что означает?
С буквочкой "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 = "Нерухомість";

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

Вопрос - как правильно сделать (я не могу придумать)
 

Фанат

oncle terrible
Команда форума
ну, лично я бы предложил открывать файл один раз, а не 100500.
 

tarweb

Новичок
В моем случае это не возможно, так как есть несколько таблиц и файлов
 

Фанат

oncle terrible
Команда форума
я бы поостерёгся употреблять слово "невозможно" в данном контексте
 

Фанат

oncle terrible
Команда форума
открыли файл
записали в него все что надо
закрыли файл
 

tarweb

Новичок
Если отрывавать файл из вне - то будет ошибка (Warning: flock(): 57 is not a valid stream resource)
Как раз в контексте $dirs должен быть fopen.
 

Фанат

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

tarweb

Новичок
я не понимаю, что значит "открывать файл извне".
Извне массива foreach

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

Фанат

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

tarweb

Новичок
Я так и делаю:

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

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