#php #sql #xml
#php #sql #xml
Вопрос:
Мой SQL-запрос таков
SELECT firstname AS 'User', count( * ) AS 'Number of photos uploaded'
FROM members
JOIN member_photo
USING ( member_id )
GROUP BY firstname
В основном он отображает данные следующим образом:
User Number of photos uploaded
Az 1
Mz 3
и так далее..
Что я хочу сделать, так это перенести эти данные в XML-файл в виде :
<photos>
<user>Az</user>
<user_photos>1</user_photos>
<user>Mz</user>
<user_photos>3</user_photos>
</photos>
или любым другим подходящим способом.
Комментарии:
1. Итак? Что вы пробовали и почему это не сработало?
2. Мои знания XML действительно невелики. Я еще ничего не пробовал. Что вы предлагаете?
3. То же, что и Пабло Санта Круз: сделайте то же самое, что вы бы сделали, если бы это был html.
Ответ №1:
Вы делаете точно так же, как если бы ваш XML был HTML.
Предположим, что это ваш php скрипт:
<?php
header('Content-Type: text/xml')'
?>
<photos>
<?php
$query = "select ... form foo...";
$result = mysql_query($query);
while ($row = mysql_fetch_assoc($result)) {
?>
<user><?= $row['user'] ?></user>
<user_photos><?= $row['photos_count'] ?></user_photos>
<?php
}
?>
</photos>
Комментарии:
1. и как мне вывести это в мой XML-файл? Я создал имя файла XML statistics.xml
2. в XML-файл!? Я думал, вы хотите вывести это в свой браузер. если вы хотите вывести в XML-файл, вам нужно будет открыть файл и записать в него.
3. да, точно. Вы знаете, как это сделать? Спасибо за помощь 🙂
Ответ №2:
Вы не указали свою СУБД, но следующее будет работать с PostgreSQL и Oracle:
SELECT '<photos>'||xmlforest(firstname AS "user", count( * ) AS user_photos)||'</photos>'
FROM members
JOIN member_photo USING ( member_id )
GROUP BY firstname