Импорт XML в базу данных MySQL

Стефан

Помогите пожалуйста, реализовать функцию, аргумент получает xml файл, нужно читать этот файл и добавить в существующую базу данных.

Код (Text):
  1.  
  2. <?xml version=»1.0″ encoding=»UTF-8″?>
  3. <Товары>
  4. <Товар Код=»201″ Название=»Бумага А4″>
  5.  
  6. <Цена Тип=»Базовая»>11.50</Цена>
  7.  
  8. <Цена Тип=»Москва»>12.50</Цена>
  9.  
  10. <Свойства>
  11.  
  12. <Плотность>100</Плотность>
  13.  
  14. <Белизна ЕдИзм=»%»>150</Белизна>
  15.  
  16. </Свойства>
  17.  
  18. <Разделы>
  19.  
  20. <Раздел>Бумага</Раздел>
  21.  
  22. </Разделы>
  23.  
  24. </Товар>
  25.  
  26. <Товар Код=»202″ Название=»Бумага А3″>
  27.  
  28. <Цена Тип=»Базовая»>18.50</Цена>
  29.  
  30. <Цена Тип=»Москва»>22.50</Цена>
  31.  
  32. <Свойства>
  33.  
  34. <Плотность>90</Плотность>
  35.  
  36. <Белизна ЕдИзм=»%»>100</Белизна>
  37.  
  38. </Свойства>
  39.  
  40. <Разделы>
  41.  
  42. <Раздел>Бумага</Раздел>
  43.  
  44. </Разделы>
  45.  
  46. </Товар>
  47.  
  48. <Товар Код=»302″ Название=»Принтер Canon»>
  49.  
  50. <Цена Тип=»Базовая»>3010</Цена>
  51.  
  52. <Цена Тип=»Москва»>3500</Цена>
  53.  
  54. <Свойства>
  55.  
  56. <Формат>A4</Формат>
  57.  
  58. <Формат>A3</Формат>
  59.  
  60. <Тип>Лазерный</Тип>
  61.  
  62. </Свойства>
  63.  
  64. <Разделы>
  65.  
  66. <Раздел>Принтеры</Раздел>
  67.  
  68. <Раздел>МФУ</Раздел>
  69.  
  70. </Разделы>
  71.  
  72. </Товар>
  73.  
  74. <Товар Код=»305″ Название=»Принтер HP»>
  75.  
  76. <Цена Тип=»Базовая»>3310</Цена>
  77.  
  78. <Цена Тип=»Москва»>2999</Цена>
  79.  
  80. <Свойства>
  81.  
  82. <Формат>A3</Формат>
  83.  
  84. <Тип>Лазерный</Тип>
  85.  
  86. </Свойства>
  87.  
  88. <Разделы>
  89.  
  90. <Раздел>Принтеры</Раздел>
  91.  
  92. <Раздел>МФУ</Раздел>
  93.  
  94. </Разделы>
  95.  
  96. </Товар>
  97.  
  98. </Товары>
 

ADSoft

Парсить XML, заносить в бд

 

Стефан

Ну это понятно. просто я пару дней только изучаю сервер и т п. и понятии не имею как сделается. как пробовал никак не получается, пробовал через simple_load_file() но не могу связать c mysql.

 

ADSoft

Выбор всегда за вами…
— потратить энное количество времени и сил для освоения новых знаний и применить их для решения задачи
— потратить энное количество денег — получить решение задачи
— забить на все, и не тратить свои и наши нервы….

 

Стефан

Я трачу ЭННОЕ количество времени и сил для решения задач, я от Вас не прошу ни код или решение данной задачи, и не вынуждаю никого тратить свои энное количество нервов, просто надеялся понимания и чуть совета.

 

lastdays

Тебе уже дали совет, потратить время и изучить это и/или бабла и времени. Решай дальше сам. Хз, каких ты ещё советов тут ищешь.
Подобные модули аля для опенкарта тысячи за 3 отдают кажись.

 

ADSoft

Мы поняли, советы дали…

Или спрашивайте конкретные вещи с конкретными вашим кодом и получайте конкретные ответы….
Либо получайте общие ответы на общие вопросы….

Как говорил Слепаков в одном КВН, «Задавай глупые вопросы — получай глупые ответы»

 

Стефан

Вот код, почему не добавляются товары????

<?php
$mysqli = mysqli_connect(‘127.0.0.1:3306’, ‘mysql’, ‘mysql’, ‘test_samson’);

if ($mysqli->connect_error) {
die(‘Ошибка подключения (‘ . $mysqli->connect_errno . ‘) ‘
. $mysqli->connect_error);
}

if (mysqli_connect_error()) {
die(‘Ошибка подключения (‘ . mysqli_connect_errno() . ‘) ‘
. mysqli_connect_error());
}

echo ‘Соединение установлено… ‘;

$xml = simplexml_load_file(‘test.xml’);

if (mysqli_query($mysqli,»CREATETABLE b_product (
Код int(30) NOTNULL,
Название text(255) NOTNULL,
Цена int(30) NOTNULL,
Тип text(255) NOTNULL,
Плотность text(255) NOTNULL,
Белизна text(255) NOTNULL,
ЕдИзм text(255) NOTNULL,
Формат text(255) NOTNULL,
Раздел text(255) NOTNULL
)») === true){
printf(«Таблица Product успешно создана.n»);
};
foreach ($xml->Товар as $products) {
$code = $products->attributes()[‘Код’];
$name = $products->attributes()[‘Название’];
$price = $products->attributes()[‘Цена’];
$type = $products->attributes()[‘Тип’];
$density =$products->attributes()[‘Плотность’];
$white = $products->attributes()[‘Белизна’];
$unit = $products->attributes()[‘ЕдИзм’];
$format = $products->attributes()[‘Формат’];
$section = $products->attributes()[‘Раздел’];
$sql = «INSERTINTO `b_product` (`Код`, `Название`, `Цена`, `Тип`, `Плотность`, `Белизна`, `ЕдИзм`, `Формат`, `Раздел`)
VALUES (‘$code’, ‘$name’, ‘$price’, ‘$type’, ‘$density’, ‘$white’, ‘$unit’, ‘$format’, ‘$section’)»;
if (mysqli_query($mysqli,$sql)) {
echo «Pегистрация продукта прошла успешно.n»;
} else {
mysqli_error($mysqli);
}
}
$mysqli->close();
?>

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *