Помощник
|
Импорт данных из xml в базу данных сайта |
yury_mw
|
Сообщение
#1
|
||
|
|
||
|
|||
matroskin8 |
16.6.2011, 16:39;
Ответить: matroskin8
Сообщение
#2
|
|
Вроде с версии 5.1 MySQL имеется поддержка работы с XML. А так я бы написал скрипт, используя, к примеру, класс SimpleXMLElement - получаем данные из XML и помещаем их в БД.
|
|
|
almatar |
16.6.2011, 17:03;
Ответить: almatar
Сообщение
#3
|
|
Это надо наверно в пхпмайамине через вкладку SQL запросы писать типа insert тотото, или как вы упомянули ручками всё создавать. Короч я не програмёр, бес его знает
|
|
|
yury_mw
|
Сообщение
#4
|
|
|
|
|
matroskin8 |
16.6.2011, 18:17;
Ответить: matroskin8
Сообщение
#5
|
|
В принципе, не сложно. Если вытащить данные из XML в массив будет достаточно? Думаю, затем из массива загонять данные в БД не составит проблемы. Если успею, то сегодня напишу, если нет - завтра.
|
|
|
yury_mw
|
Сообщение
#6
|
|
|
|
|
matroskin8 |
16.6.2011, 19:03;
Ответить: matroskin8
Сообщение
#7
|
|
Ну и отлично
В принципе, быстренько набросал. Думаю, все должно быть понятно - код старался максимально комментировать. Даже тестово поместил в БД - все работает. Единственное - это возможная проблема с кодировками... XML не очень дружит с кириллицей, лучше работать с юникодом. Код тестировал - все работает. XML: [xml]<?xml version="1.0" encoding="utf-8" ?> <blocks> <block> <id>id1</id> <date>Дата1</date> <title>Заголовок1</title> <link>Ссылка1</link> </block> <block> <id>id2</id> <date>Дата2</date> <title>Заголовок2</title> <link>Ссылка2</link> </block> </blocks>[/xml] PHP: [php]<?php mysql_connect("localhost", "root", "") or die("No connect to server"); mysql_select_db("test") or die("No select DB"); mysql_query("set names 'utf-8'"); /* функция дебага массивов */ function arr($arr){ echo '<pre>'; print_r($arr); echo '</pre>'; } $file = 'file.xml'; // файл XML $read = simplexml_load_file($file); // получаем объект класса //arr($read); // распечатываем массив $read $xml = $read->block; // $xml - объект-массив, вложенные теги - его свойства $count = count($xml); // кол-во элементов массива for($i = 0; $i < $count; $i++){ echo "<p>Ряд для таблицы с id - {$i}</p>"; echo $xml[$i]->id. '<br />'; // вывод id echo $xml[$i]->date. '<br />'; // вывод date echo $xml[$i]->title. '<br />'; // вывод title echo $xml[$i]->link. '<br />'; // вывод link /* можно поместить в привычные переменные */ $id_xml = $xml[$i]->id; $date_xml = $xml[$i]->date; $title_xml = $xml[$i]->title; $link_xml = $xml[$i]->link; /* заносим данные в БД */ $res = mysql_query("INSERT INTO `xml` SET `id_xml`='{$id_xml}', `date_xml`='{$date_xml}', `title_xml`='{$title_xml}', `link_xml`='{$link_xml}'"); } ?>[/php] Поблагодарили: (0) |
|
|
yury_mw
|
Сообщение
#8
|
|
Ну и отлично В принципе, быстренько набросал. Думаю, все должно быть понятно - код старался максимально комментировать. Даже тестово поместил в БД - все работает. Единственное - это возможная проблема с кодировками... XML не очень дружит с кириллицей, лучше работать с юникодом. Код тестировал - все работает. matroskin8, спасибо, все получилось Правда пришлось помучиться с кодировками, пока не пришло в голову заменить [php]mysql_query("set names 'utf-8'");[/php]на [php]mysql_query("set names 'utf8'");[/php] |
|
|
matroskin8 |
16.6.2011, 22:03;
Ответить: matroskin8
Сообщение
#9
|
|
А, точно - эт я уже ошибся в запросе с кодировкой
Кстати, надо будет проверить завтра и дописать в запрос условие: [php]mysql_query("set names 'utf-8'") or die("Can't set charset");[/php] Интересно выведет ли ошибку с такой записью... |
|
|
matroskin8 |
17.6.2011, 10:58;
Ответить: matroskin8
Сообщение
#10
|
|
|
Проверил... условие или срабатывает при такой записи:
[php]mysql_query("set names 'utf-8'") or die("Can't set charset");[/php] и выводится сообщение о невозможности установить кодировку соединения. Вот что значит не проверять такие простенькие запросы - а я обычно никогда и не проверяю их... теперь будет мне наука
|
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Продвижение молодого сайта | 30 | maxmer | 6363 | 26.3.2024, 21:49 автор: c4p1t4l15t |
|
SEO-текст на главной странице сайта и в категориях | 5 | boltuk | 1352 | 26.3.2024, 21:43 автор: c4p1t4l15t |
|
Какой % отказов нормален для сайта? | 10 | Aloof | 2542 | 24.3.2024, 21:45 автор: Liudmila |
|
Быстрая индексация страниц сайта и обратных ссылок - 2Index | 32 | 2Index | 5811 | 18.3.2024, 16:33 автор: 2Index |
|
Продам базу сайтов Wordpress в 16 миллионов доменов! Свежая сборка. | 17 | Boymaster | 9774 | 17.3.2024, 2:53 автор: Boymaster |
Текстовая версия | Сейчас: 28.3.2024, 19:28 |