powered by simpleCommunicator - 2.0.28     © 2024 Programmizd 02
Map
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / XML -> MySQL
5 сообщений из 5, страница 1 из 1
XML -> MySQL
    #39969526
15061997
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток.


Как загрузить
ONIX XML

в

базу данных MySQL

при этом наименование колонок в базе данных не соответствуют тегам в xml.

Только выборочные теги должны быть внесены в базу данных.
Возможность обновлять имеющиеся данные в базе (onix_xml обновления) а также удалять данные (onix_xml удалить).
Должно работать на сервере (Апачи)(ПХП 7.2 и выше).

пытался решить вот так

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
<?php
//import.php
sleep(3);
$output = '';

if(isset($_FILES['file']['name']) &&  $_FILES['file']['name'] != '')
{
 $valid_extension = array('xml');
 $file_data = explode('.', $_FILES['file']['name']);
 $file_extension = end($file_data);
 if(in_array($file_extension, $valid_extension))
 {
  $data = simplexml_load_file($_FILES['file']['tmp_name']);
  $connect = new PDO('mysql:host=localhost;);
  $query = "
INSERT INTO oxarticles 
   (OXID, OXSHOPID, OXPARENTID, OXACTIVE, OXHIDDEN, OXARTNUM, OXACTIVEFROM) 
   VALUES(:OXID, :OXSHOPID, :OXPARENTID, :OXACTIVE,:OXHIDDEN, :OXARTNUM, :OXACTIVEFROM);
  ";
  $statement = $connect->prepare($query);
  for($i = 0; $i < count($data); $i++)
  {
   $statement->execute(
    array(
     ':OXID'   => $data->product datestamp="20190106"->a001,
	 ':OXSHOPID' => $data->product datestamp="20190106"->a002,
	 ':OXPARENTID' => $data->product datestamp="20190106"->productidentifier->b221,
	 ':OXACTIVE' => '1',
	 ':OXHIDDEN' => "1",
	 ':OXARTNUM' => '1',
	 ':OXACTIVEFROM' => '1'	 
	 
	 
       )
   );

  }
  $result = $statement->fetchAll();
  if(isset($result))
  {
   $output = '<div class="alert alert-success">Всё прошло удачно!!!</div>';
  }
 }
 else
 {
  $output = '<div class="alert alert-warning">Файлы безпонтовые. В топку их!</div>';
 }
}
else
{
 $output = '<div class="alert alert-warning">Выбери XML файлы</div>';
}

echo $output;

?>



не вносит то что надо, не получается...
...
Рейтинг: 0 / 0
XML -> MySQL
    #39969838
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
15061997
Код: php
1.
$data->product datestamp="20190106"->productidentifier->b221,

Что хотелось сказать этой строчкой? Оно вообще компилироваться не должно
...
Рейтинг: 0 / 0
XML -> MySQL
    #39969845
15061997
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_Vasilisk_,


Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<product datestamp="20190106">
    <a001>051d3d1f81cd44d7972c9aaaefa81ce7</a001>
    <a002>03</a002>
    <productidentifier>
        <b221>02</b221>
        <b244>3863522702</b244>
    </productidentifier>
    <productidentifier>
        <b221>03</b221>
        <b244>9783863522704</b244>
    </productidentifier>
    <productidentifier>
         что бы  вот если это -----><b221>15</b221>  ровно 15 то перенимается вот это --.
  <b244>9783863522704</b244> <--------------------------------------------------------' 
    </productidentifier>



но не перенимается/ передаётся даже значение тега B221
...
Рейтинг: 0 / 0
XML -> MySQL
    #39969855
15061997
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
хотела указать путь где вот это :OXPARENTID' должно перенять значение
...
Рейтинг: 0 / 0
XML -> MySQL
    #39969864
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может вы так хотели?
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
  $statement = $connect->prepare($query);
  for($data->children() as $product)
  {
   $statement->execute(
    array(
     ':OXID'   => $product->a001,
	 ':OXSHOPID' => $product->a002,
	 ':OXPARENTID' => $product->productidentifier->b221,
	 ':OXACTIVE' => '1',
	 ':OXHIDDEN' => "1",
	 ':OXARTNUM' => '1',
	 ':OXACTIVEFROM' => '1'	 
       )
   );


И вот это
15061997
Код: php
1.
$result = $statement->fetchAll();

полный бред. Какой fetch для INSERT?
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / XML -> MySQL
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]