Advertisement
Guest User

Untitled

a guest
Feb 22nd, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.55 KB | None | 0 0
  1. <?php
  2.   define('MODX_API_MODE', true);
  3.   require_once(dirname(dirname(dirname(__FILE__))).'/index.php');
  4.  
  5.   $qIns=$modx->prepare("
  6.    INSERT INTO dev_docke_trades (article, name, unitname, unitkod, price)
  7.    VALUES (:article, :name, :unitname, :unitkod, :price) ON DUPLICATE KEY
  8.    UPDATE name=:name, unitname=:unitname, unitkod=:unitkod, price=:price
  9.  ");
  10.  
  11.   $qUpd=$modx->prepare("
  12.    UPDATE modx_ms2_products SET price=:price WHERE article=:article
  13.  ");
  14.  
  15.   $file = dirname(__FILE__).'/data/data.xml';
  16.  
  17.   $reader = new XMLReader();
  18.   $reader->open($file); // читаем файл
  19.  
  20.   $doc = new DOMDocument;
  21.  
  22.   while ($reader->read() && $reader->name !== 'product');
  23.  
  24.   // Парсим все ноды продуктов
  25.   while ($reader->name === 'product')
  26.   {
  27.    
  28.     // Парсим ноду продукта в объект
  29.     $node = simplexml_import_dom($doc->importNode($reader->expand(), true));
  30.  
  31.     // Пишем данные товара в DB
  32.     writeToDB($node, $qIns);
  33.     updateDB($node, $qUpd);
  34.  
  35.     // Переход к сдледущей ноде
  36.     $reader->next('product');
  37.   }
  38.  
  39.   function writeToDB($node, $qIns) {
  40.     $qIns->execute(array(
  41.       ':article'    => $node->article,
  42.       ':name'       => $node->name,
  43.       ':unitname'   => $node->unitname,
  44.       ':unitkod'    => $node->unitkod,
  45.       ':price'      => $node->price
  46.     ));
  47.   }
  48.  
  49.   function updateDB($node, $qUpd) {
  50.     $qUpd->execute(array(
  51.       ':price'      =>  $node->price,
  52.       ':article'    => $node->article
  53.     ));
  54.   }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement