//Папка языков
$path_lang = "lang";
//Массив языков(ru, uk, en)
foreach (glob($path_lang."*") as $dir)
{
if ((is_dir($path_lang)==TRUE)&&($path_lang!='.' && $path_lang!='..' ))
{
$dirs = basename($dir);
}
$ro = $db->query ( "select * from pages_$dirs order by id " ) or die (mysql_error());
$res = $db->numrows ($ro);
//Массив переменных в базе
for ( $i=1; $i<=$res; $i++ )
{
//Таблицы языков с данными link, name(pages_ru, pages_uk, pages_en)
$r = $db->query ( "SELECT * from pages_$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 = "Нерухомість";
*/
//Записывает в файл - только по одному разу в каждую папку языков при $i>1 ???
$temp_lang = file_get_contents("$path_lang/temp_$dirs.php");
$fp1 = fopen ("./../$path_lang/$dirs/$dirs.php", "w");
flock($fp1,LOCK_EX);
ftruncate ($fp1,0);
fwrite($fp1,$menu_lang."\r\n");
fwrite($fp1,$temp_lang);
fflush($fp1);
flock($fp1,LOCK_UN);
fclose($fp1);
}
}
/*К примеру:
$lang_ralty = "Real Estate"; (в файл en.php)
$lang_ralty = "Недвижимость"; (в файл ru.php)
$lang_ralty = "Нерухомість"; (в файл uk.php)
*/
Спустя 1 час, 28 минут, 54 секунды (12.03.2012 - 21:44) tar написал(а):
Народ АУУУУУУУУУУ
Я падаю.......
Я падаю.......
Спустя 1 час, 11 минут (12.03.2012 - 22:55) tar написал(а):

Спустя 6 часов, 46 минут, 45 секунд (13.03.2012 - 05:42) Visman написал(а):
И в чем вопрос?
Спустя 3 часа, 54 минуты, 41 секунда (13.03.2012 - 09:37) tar написал(а):
Вопрос закоментирован
//Записывает в файл - только по одному разу в каждую папку языков при $i>1 ???
//Записывает в файл - только по одному разу в каждую папку языков при $i>1 ???
Спустя 12 минут, 5 секунд (13.03.2012 - 09:49) sergeiss написал(а):
Во-первых, не надо делать запросы к БД в цикле. Это принципиально не верно, хотя и работает
Сделай один запрос и бери данные.
Во-вторых, ты внутри цикла открываешь файл на запись (режим "w"), а не на добавление (!!!). Конечно, там только последняя запись будет. Потому что файл каждый раз пересоздается.

Во-вторых, ты внутри цикла открываешь файл на запись (режим "w"), а не на добавление (!!!). Конечно, там только последняя запись будет. Потому что файл каждый раз пересоздается.
Спустя 7 часов, 8 минут, 29 секунд (13.03.2012 - 16:57) tar написал(а):
Спасибо - файл на запись (режим "w") понял !
Но мне нужно только режим "w" с перезаписью, иначе будут плодиться
все время дублирующие данные.
Не понял - как одним запросом вытаскивать данные из множества таблиц.
Но мне нужно только режим "w" с перезаписью, иначе будут плодиться
все время дублирующие данные.
Не понял - как одним запросом вытаскивать данные из множества таблиц.
Спустя 41 минута, 27 секунд (13.03.2012 - 17:39) sergeiss написал(а):
Цитата (tar @ 13.03.2012 - 17:57) |
Но мне нужно только режим "w" с перезаписью, иначе будут плодиться все время дублирующие данные. |
Так ты открой файл ДО начала цикла, а закрой по окончании цикла. Если это, конечно, соответствует логике твоего приложения.
Цитата (tar @ 13.03.2012 - 17:57) |
Не понял - как одним запросом вытаскивать данные из множества таблиц. |
Это про JOIN почитай в хэлпе. Хотя в твоем случае я вообще не понял, что ты делаешь с данными. Сначала выбираешь всё, идешь по этим данным в цикле, выбирая их же опять... Хрень какая-то

Спустя 27 минут, 33 секунды (13.03.2012 - 18:06) tar написал(а):
Цитата (sergeiss @ 13.03.2012 - 14:39) |
Так ты открой файл ДО начала цикла, а закрой по окончании цикла. Если это, конечно, соответствует логике твоего приложения. |
Файл должен открываться только в цикле для выбора папки и файла языков
$fp1 = fopen ("./../$path_lang/$dirs/$dirs.php", "w");
Цитата (sergeiss @ 13.03.2012 - 14:39) |
Это про JOIN почитай в хэлпе. Хотя в твоем случае я вообще не понял, что ты делаешь с данными. Сначала выбираешь всё, идешь по этим данным в цикле, выбирая их же опять... Хрень какая-то |
Первый запрос для массива for что-бы определить количество - $res.
По другому определить $res я не смог придумать.
(Количество итераций внутри foreach определить не возможно)
JOIN - сначала, я думаю, надо определить как-то, какие таблицы выбирать
(принадлежит она к языкам или нет)
И потом, одинаковых данных в таблицах для объединения у меня нет.
Спустя 2 часа, 17 минут, 16 секунд (13.03.2012 - 20:24) sergeiss написал(а):
Цитата (tar @ 13.03.2012 - 19:06) |
(Количество итераций внутри foreach определить не возможно) |
Всё понятно с тобой

Иди сюда http://phpforum.ru/index.php?showtopic=21916 и читай. Тебе не нужен цикл foreach вообще.
Спустя 1 час, 31 минута, 54 секунды (13.03.2012 - 21:56) tar написал(а):
Цитата (sergeiss @ 13.03.2012 - 17:24) |
Иди сюда http://phpforum.ru/index.php?showtopic=21916 и читай |
Вывод из базы - это хорошо, но мне нужно этот вывод как-то раскидать по файлам, которые соответствуют названиям таблиц.
Данные таблицы pages_ru - папка ru/файл ru
Данные таблицы pages_en - папка ru/файл en
И так далее....
p.s. Вроде все так просто.