Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Вывод древа категорий в XML

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Вывод данных из SQL в XML с помощью DOM
Detryer
Отправлено: 21 Сентября, 2015 - 02:16:05
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Сент. 2015  


Помог: 0 раз(а)




Здравствуйте! Вопрос следующий:

Имеется массив, взятый из SQL, его примерный вид:

Array ( [id] => 25 [parent] => 27 [name] => Components )
Array ( [id] => 27 [parent] => 20 [name] => Mac )
Array ( [id] => 20 [parent] => 0 [name] => Desktops )


Нужно вывести все это дело в XML файл с помощью библиотеки DOM, чтобы в файле данные были вида:

<categories>
<category id="20">Desktops</category>
<category id="27" parentId="20">Mac</category>
<category id="25" parentId="27">Components</category>
</categories>


Часть кода:

PHP:
скопировать код в буфер обмена
  1. $categories = $shop->appendChild($dom->createElement('catagories'));
  2.     while ($result = $oc_category->fetch_assoc()) {
  3.         $result['name'] = htmlspecialchars($result['name']);
  4.        if ($result['parent'] == 0) {
  5.             $parent_category = $categories->appendChild($dom->createElement('category', $result['name']));
  6.             $parent_category->setAttribute('id', $result['id']);
  7.        } else {
  8.             $child_category = $categories->appendChild($dom->createElement('category', $result['name']));
  9.             $child_category->setAttribute('id', $result['id']);
  10.             $child_category->setAttribute('parentId', $result['parent']);
  11.     }
  12. }


Сложности вызывает то, что все выводится неупорядоченным списком.
 
 Top
DlTA
Отправлено: 21 Сентября, 2015 - 08:04:18
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




а нафига вам библиотека DOM для формирования xml ?
 
 Top
Detryer
Отправлено: 21 Сентября, 2015 - 13:31:24
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Сент. 2015  


Помог: 0 раз(а)




DlTA пишет:
а нафига вам библиотека DOM для формирования xml ?


А чем тогда лучше формировать? Просто по мне так с DOM довольно универсальный XML генератор получается
 
 Top
DlTA
Отправлено: 21 Сентября, 2015 - 14:28:03
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




Detryer пишет:
А чем тогда лучше формировать? Просто по мне так с DOM довольно универсальный XML генератор получается

тогда дерзайте, формируйте исходные данные в нужной последовательности и т.д.
 
 Top
Detryer
Отправлено: 21 Сентября, 2015 - 19:18:11
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Сент. 2015  


Помог: 0 раз(а)




DlTA пишет:
тогда дерзайте, формируйте исходные данные в нужной последовательности и т.д.

Если нечего посоветовать - не пишите, зачем разводить срач? Я спросил, как сделать именно с помощью DOM, а вы начинаете разводить срач. Сказали, что DOM - не лучшее решение, так посоветуйте тогда, чем формировать лучше, никто не любит необоснованную критику. Весь файл уже создается правильно за исключением лишь порядка категорий, переписывать смысла не вижу.
 
 Top
andrewkard
Отправлено: 21 Сентября, 2015 - 20:40:55
Post Id


Участник


Покинул форум
Сообщений всего: 1372
Дата рег-ции: Нояб. 2014  


Помог: 30 раз(а)




Detryer
Попробуйте применить сортировку при выборке из БД
ORDER BY id ASC;
 
 Top
Detryer
Отправлено: 22 Сентября, 2015 - 00:18:58
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Сент. 2015  


Помог: 0 раз(а)




andrewkard пишет:
Detryer
Попробуйте применить сортировку при выборке из БД
ORDER BY id ASC;


К сожалению, не получится, т.к. id у меня идут в неправильном порядке
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« XML и его обработка »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB