Проблема с использованием циклов while и foreach при составлении файла выгрузки

Aptixx

Новичок
Здравствуйте! В php я новичек, необходимо реализовать выгрузку в формате xml из mysql.
Нашел в сети скрипт и доработал под себя, как он работает меня устраивает, но никак не могу разобраться с циклами.


PHP:
$date = date('c') ;
$xml = '<LISTINGS>
<LISTING GED_VERSION="2" DT_FILE="'.$date.'" ADVFILENAME="file.xml"/>
<ADS>' ;
$ads = '</ADS>
</LISTINGS>' ;

//подключение к базе
       
$q = mysql_query("SELECT bla,

......ЗАПРОС РАБОТАЕТ КОРРЕКТНО, ВЫДАЕТ ТО, ЧТО НУЖНО..............

FROM bla
WHERE bla=bla") ;
$begdate = date('Y-m-d H') ;
$enddate = date('Y-m-d H', strtotime ('+30 days'));

while ($row = mysql_fetch_array($q)) {

$element = $row['id'] ;
$images = $row['images'];
$images = json_decode($images, true);

foreach ($images as $k => $image) {  //ВОТ ЭТОТ ЦИКЛ НУЖНО ПРИМЕНИТЬ
$imagepath = "<FILE FILEPATH=\"http://blabla.ru/$element/"$image['name']"\" />"  ;
}

$xml .= '
<OBJECT>
<AD ADVNUM="'.$row['id'].'" LOTNUM="A'.$row['id'].'"/>
<DT BEGIN="'.$begdate.'" END="'.$enddate.'"/>
<ADRINF>
<COUNTRY>Россия</COUNTRY>
<FILES>
'.$imagepath.'    //Проблема здесь! Выдает лишь одно название из массива //json, дублирует одно название на несколько строк, в случае, когда в массиве json //несколько значений для $image['name']
    </FILES>
</OBJECT>  ' ; }

$f = fopen('file.xml', 'w');
fwrite($f, $xml.$ads);
fclose($f);


Нужно, чтобы пробегая по каждой строке массива из mysql, декодировалось json полe images, чтобы из этого массива было вытащено name="имя файла", при этом имен может быть несколько, и далее, между тегами FILES проставлялись теги ,соответственно если имен несколько
<FILE FILEPATH="http://blabla.ru/ТЕКУЩИЙ ID/ИМЯ ФАЙЛА 1" />
<FILE FILEPATH="http://blabla.ru/ТЕКУЩИЙ ID/ИМЯ ФАЙЛА 2/" />
и т.д.
Помогите, пожалуйста, разобраться.

Это попадает в функцию $images из mysql до применения json_decode
[{"title":"","description":"","name":"182353318.jpg"},{"title":"","description":"","name":"DSC03614.packed.jpeg"},{"title":"","description":"","name":"DSC03613.packed.jpeg"},{"title":"","description":"","name":"DSC03612.packed.jpeg"},{"title":"","description":"","name":"DSC03611.packed.jpeg"}]
 

Aptixx

Новичок
Разобрался После объявления переменной
PHP:
$images = json_decode($images, true);
Объявить переменную
PHP:
$imagepath = '';
И во время цикла сделать ее перезаписываемой
PHP:
$imagepath .= "<FILE FILEPATH=\"http://blabla.ru/$element/".$image['name']."\" />";
 

AnrDaemon

Продвинутый новичок
Ну раз уже вы используете встраивание переменных, кто вам мешает пойти до конца и написать
PHP:
$imagepath .= "<FILE FILEPATH=\"http://example.ru/{$element}/{$image['name']}\" />";
?
Оно так и читается намного лучше... при наличии нормального редактора.
 
Сверху