Guest User

Untitled

a guest
Jul 18th, 2018
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.93 KB | None | 0 0
  1. $reader2->open($file);
  2.  
  3. <pre>
  4. //ini_set("display_errors",1);
  5. set_time_limit(0);
  6. //mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
  7. $hostname = "localhost";
  8. $username = "юзер";
  9. $password = "пароль";
  10. $dbName = "knigi";/* Таблица MySQL, в которой хранятся данные *//* создать соединение */
  11. $dbu = mysql_connect($hostname,$username,$password) or die("Не могу создать соединение ");
  12. @mysql_select_db("$dbName") or die("Не могу выбрать базу данных ");
  13. mysql_set_charset('utf8',$dbu);
  14. include 'functions.php';
  15. $nowdate = date("Y-m-d H:i:s");
  16. //почистим данные перед запуском на время тестов
  17. //чистим связи
  18. mysql_query("TRUNCATE link_attribute");
  19. mysql_query("TRUNCATE link_attribute_group");
  20. mysql_query("TRUNCATE link_cat");
  21. mysql_query("TRUNCATE link_izdat");
  22. mysql_query("TRUNCATE link_product");
  23. mysql_query("TRUNCATE link_attribute");
  24. //чистим атрибуты
  25. mysql_query("TRUNCATE import_attribute_values");
  26. mysql_query("TRUNCATE os_attribute");
  27. mysql_query("TRUNCATE os_attribute_description");
  28. mysql_query("TRUNCATE os_attribute_group");
  29. mysql_query("TRUNCATE os_attribute_group_description");
  30. //чистим производителей
  31. mysql_query("TRUNCATE os_manufacturer");
  32. mysql_query("TRUNCATE os_manufacturer_description");
  33. mysql_query("TRUNCATE os_manufacturer_to_store");
  34. //чистим данные категорий
  35. mysql_query("TRUNCATE os_category");
  36. mysql_query("TRUNCATE os_category_description");
  37. mysql_query("TRUNCATE os_category_filter");
  38. mysql_query("TRUNCATE os_category_path");
  39. mysql_query("TRUNCATE os_category_to_layout");
  40. mysql_query("TRUNCATE os_category_to_store");
  41. //чистим данные товаров
  42. mysql_query("TRUNCATE os_product");
  43. mysql_query("TRUNCATE os_product_attribute");
  44. mysql_query("TRUNCATE os_product_description");
  45. mysql_query("TRUNCATE os_product_discount");
  46. mysql_query("TRUNCATE os_product_filter");
  47. mysql_query("TRUNCATE os_product_image");
  48. mysql_query("TRUNCATE os_product_to_category");
  49. mysql_query("TRUNCATE os_product_to_layout");
  50. mysql_query("TRUNCATE os_product_to_store");
  51. mysql_query("TRUNCATE os_url_alias");
  52. include "/var/www/www-root/data/www/Сервер/library/SimpleXMLReader.php";
  53. $file = "import3.xml";
  54. $reader = new SimpleXMLReader;
  55. $reader->open($file);
  56. $reader->registerCallback("Группы", function($reader) {
  57. $xml = $reader->expandSimpleXml(); // copy of the current node as a SimpleXMLElement object
  58. $num1 = $xml->count();
  59. for ($i = 0; $i <= $num1-1; $i++) {
  60. //записываем родительские категории в базу
  61. $CatImportId = $xml->Группа[$i]->Ид;
  62. $CatImportName = $xml->Группа[$i]->Наименование;
  63. $CatImportImage = $xml->Группа[$i]->Картинка;
  64. $CatImportSort = $xml->Группа[$i]->Сортировка;
  65. $parent = get_cat($CatImportId,$CatImportName,$CatImportImage,$CatImportSort,0,0);
  66. $CatChildImportName = $xml->Группа[$i]->Наименование;
  67. $num2 = $xml->Группа[$i]->Группы->Группа->count();
  68. for ($i2 = 0; $i2 <= $num2-1; $i2++) {
  69. $CatChildImportId = $xml->Группа[$i]->Группы->Группа[$i2]->Ид;
  70. $CatChildImportName = $xml->Группа[$i]->Группы->Группа[$i2]->Наименование;
  71. $CatChildImportImage = $xml->Группа[$i]->Группы->Группа[$i2]->Картинка;
  72. $CatChildImportSort = $xml->Группа[$i]->Группы->Группа[$i2]->Сортировка;
  73. $parent2 = get_cat($CatChildImportId,$CatChildImportName,$CatChildImportImage,$CatChildImportSort,2,$parent);
  74. $num3 = $xml->Группа[$i]->Группы->Группа[$i2]->count();
  75. for ($i3 = 0; $i3 <= $num3-1; $i3++) {
  76. //if(isset($xml->Группа[$i]->Группы->Группа[$i2]->Группы->Группа[$i3]->Ид)){
  77. $CatChild2ImportId = $xml->Группа[$i]->Группы->Группа[$i2]->Группы->Группа[$i3]->Ид;
  78. //}
  79. //if(isset($xml->Группа[$i]->Группы->Группа[$i2]->Группы->Группа[$i3]->Наименование)){
  80. $CatChild2ImportName = $xml->Группа[$i]->Группы->Группа[$i2]->Группы->Группа[$i3]->Наименование;
  81. //}
  82. //if(isset($xml->Группа[$i]->Группы->Группа[$i2]->Группы->Группа[$i3]->Картинка)){
  83. $CatChild2ImportImage = $xml->Группа[$i]->Группы->Группа[$i2]->Группы->Группа[$i3]->Картинка;
  84. //}
  85. //if(isset($xml->Группа[$i]->Группы->Группа[$i2]->Группы->Группа[$i3]->Сортировка)){
  86. $CatChild2ImportSort = $xml->Группа[$i]->Группы->Группа[$i2]->Группы->Группа[$i3]->Сортировка;
  87. //}
  88. $parent3 = get_cat($CatChild2ImportId,$CatChild2ImportName,$CatChild2ImportImage,$CatChild2ImportSort,3,$parent2);
  89. }
  90. }
  91. }
  92.  
  93. unset($xml);
  94.  
  95. });
  96. $reader->parse();
  97. $reader->close();
  98. $reader2 = new SimpleXMLReader;
  99. $reader2->open($file);
  100. $reader2->registerCallback("Свойства", function($reader2) {
  101. $array2 = $reader2->expandSimpleXml(); // copy of the current node as a SimpleXMLElement object
  102. //парсим базу справочников
  103. $num4 = $array2->Свойство->count();
  104. //создаем новую группу атрибутов
  105. mysql_query("INSERT INTO `os_attribute_group` VALUES (NULL, '0');");
  106. //получаем вставленный id
  107. $AttributeGroupId=mysql_insert_id();
  108. //сохраняем в связи
  109. //mysql_query("INSERT INTO `link_attribute_group` VALUES ('$AttributeGroupId', '$id');");
  110. //задаем название группы
  111. mysql_query("INSERT INTO `os_attribute_group_description` VALUES ('$AttributeGroupId', '1', 'Характеристики');");
  112. //перебираем группы атрибутов
  113. for ($i4 = 0; $i4 <= $num4-1; $i4++) {
  114. $array = $array2->Свойство[$i4]->ВариантыЗначений->Справочник;
  115. $id = $array2->Свойство[$i4]->Ид;
  116. $name = $array2->Свойство[$i4]->Наименование;
  117. if ($name == 'Издательство'){ //издателя кидаем в производители
  118. $num5 = $array->count();
  119. for ($i5 = 0; $i5 <= $num5-1; $i5++) {
  120. $IdImportIzdat = $array[$i5]->ИдЗначения;
  121. $NameImportIzdat = $array[$i5]->Значение;
  122. if ($NameImportIzdat == ''){}else{
  123. mysql_query("INSERT INTO `os_manufacturer` VALUES (NULL, '$NameImportIzdat', 'catalog/demo/htc_logo.jpg', '0');");
  124. $IzdatId=mysql_insert_id();
  125. //сохраняем в связи
  126. mysql_query("INSERT INTO `link_izdat` VALUES ('$IzdatId', '$IdImportIzdat');");
  127. mysql_query("INSERT INTO `os_manufacturer_description` VALUES ('$IzdatId', '1', '$NameImportIzdat', 'Пример текста в описания издателя', '$NameImportIzdat', '$NameImportIzdat', '', '');");
  128. //привязываем производителя к магазину
  129. mysql_query("INSERT INTO `os_manufacturer_to_store` VALUES ('$IzdatId', '0');");
  130. $importId = $array[$i5]->Значение;
  131. }
  132. }
  133. }else{
  134. mysql_query("INSERT INTO `os_attribute` VALUES (NULL, '$AttributeGroupId', '0');");
  135. $AttributeId=mysql_insert_id();
  136. //сохраняем в связи
  137. mysql_query("INSERT INTO `link_attribute` VALUES ('$AttributeId', '$id');");
  138. //задаем имя значения атрибута
  139. mysql_query("INSERT INTO `os_attribute_description` VALUES ('$AttributeId', '1', '$name');");
  140. $num5 = $array->count();
  141. for ($i5 = 0; $i5 <= $num5-1; $i5++) {
  142. $IdImportAtt = $array[$i5]->ИдЗначения;
  143. $NameImportAtt = $array[$i5]->Значение;
  144. if ($NameImportAtt == ''){}else{
  145. mysql_query("INSERT INTO `import_attribute_values` VALUES (NULL, '$IdImportAtt', '$AttributeId', '$NameImportAtt', '')");
  146. //$AttValueId=mysql_insert_id();
  147. }
  148. }
  149. }
  150. //get_attribute ($id, $name, $array);
  151. }
  152.  
  153. unset($array2);
  154. });
  155. $reader2->parse();
  156. $reader2->close();
  157. $reader3 = new SimpleXMLReader;
  158. $reader3->open($file);
  159. $reader3->registerCallback("Товары", function($reader3) {
  160. $array3 = $reader3->expandSimpleXml(); // copy of the current node as a SimpleXMLElement object
  161. ///поехали парсить товары
  162. $num = $array3->Товар->count();
  163. for ($i = 0; $i <= $num-1; $i++) {
  164. $idProduct = $array3->Товар[$i]->Ид;
  165. $groupId = $array3->Товар[$i]->Группы->Ид;
  166. $nameProduct = $array3->Товар[$i]->Наименование;
  167. $titleProduct = $array3->Товар[$i]->Титл;
  168. $descProduct = $array3->Товар[$i]->Описание;
  169. $imgProduct = $array3->Товар[$i]->Картинка;
  170. $array = $array3->Товар[$i];
  171. get_product($idProduct, $groupId, $nameProduct, $titleProduct, $descProduct, $imgProduct, $array);
  172. }
  173.  
  174. unset($array3);
  175. });
  176. $reader3->parse();
  177. $reader3->close();
  178. $start = microtime(true);
  179. // тело скрипта
  180. echo'All good!!!!!!!!!!!!!!!!!<br>';
  181. echo 'time: '.(microtime(true) - $start).' sec.<br>Memory:';
  182. echo memory_get_usage() . "n"; // 36640
  183.  
  184. </pre>
  185.  
  186. $dbh->beginTransaction();
  187.  
  188. $dbh->beginTransaction();
  189.  
  190. $dbh->commit();
  191.  
  192. $dbh->rollBack();
Add Comment
Please, Sign In to add comment