У меня есть проблема с моим кодом на данный момент, и я надеюсь, что вы можете мне помочь.Экспорт XML из mySQL с PHP
Первый из рабочих таблиц
SELECT artist, album, song
FROM artist
LEFT JOIN album
on artist.artist_ID = album.artist_ID
LEFT JOIN song
on album.album_ID = song.album_ID
ORDER BY artist.artist, album.album_ID, song.song_ID
Im пытаются экспортировать в XML с помощью PHP, так им создавая XML непосредственно в документе, так что я просто нажать на ссылку для просмотра и доступа к XML. Но проблема заключается в том, что песня не складывается под альбом. Вместо этого они делают это:
<music>
<artist name="$artist1">
<album name="$album1">
<song>$song1</song>
</album>
</artist>
</music>
<music>
<artist name="$artist1">
<album name="$album1">
<song>$song2</song>
</album>
</artist>
</music>
Я хочу, чтобы затем укладывать так:
<music>
<artist name="$artist1">
<album name="$album1">
<song>$song1</song>
<song>$song2</song>
<song>$song3</song>
</album>
</artist>
</music>
Это PHP-код я использую в данный момент экспортировать в XML, что-то здесь не работают. Я пытался исправить это последние 12 часов без везения.
$export = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n";
$export="<myTunes>";
while($row = mysqli_fetch_array($result))
{
$export.="<music>";
$artist=$row["artist"];
$album=$row["album"];
$song=$row["song"];
$export.=" <artist name='$artist'>
<album name='$album'>
<song>$song</song>
</album>
</artist>";
$export.="</music>";
}
$export.="</myTunes>";
file_put_contents("export.xml", $export);
echo "<a href='export.xml' target='_blank'>Export database as XML</a>";
Пожалуйста, помогите, если вы можете, я начну раздумывать здесь. С наилучшими пожеланиями, Chris
Вам следует рассмотреть возможность использования 'DomDocument' или чего-то подобного для обработки фактического вывода XML. Манипулирование строк напрямую делает ваш код крайне уродливым, а получение XML-документа с замечательным отступом является сложным. –
Я согласен, его очень сложно, если я хочу собрать всю песню под альбом. его легкость, если у меня есть элементы uniq в каждой строке. Я посмотрю, как работает «DomDocuments» и посмотрю, могу ли я это понять, спасибо за подсказку – user2272544
Не пишите это самостоятельно. Это уже сделано. См. [XML_Query2XML] (http://pear.php.net/package/XML_Query2XML), а также документация конечного пользователя: http://query2xml.sourceforge.net/docs/ - Ваша выгода: пример, который дает автор, - это * очень похожая вещь: художники и альбомы. http://query2xml.sourceforge.net/docs/html/XML_Query2XML/tutorial_XML_Query2XML.pkg.html#x_to_n –