Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Вопрос по парсингу XML и внесению результатов в MySQL

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: разбор xml с помощью SimpleXML
skynetmn
Отправлено: 25 Ноября, 2012 - 16:48:25
Post Id


Новичок


Покинул форум
Сообщений всего: 1
Дата рег-ции: Нояб. 2012  


Помог: 0 раз(а)




Добрый день!
Помогите пожалуйста вот с какой проблемой, есть парсер, который разбирает xml файл, через эхо подсвечивал переменные из цикла данные все видны и в полном количестве, но при записи в базу пишется только 298 организаций а должно 359. И только 359 позиций (как раз ровно столько сколько организаций почему-то) а должно быть порядка 7400 позиций, прошу помочь разобраться:
UPD!: c Организациями разобрался, оказывается надо было поменять типы столбцов там где явно цифры будут там я сделал INT где буквы с цифрами или буквы там оставил VARCHAR только кол-во символов сделал поменьше.. еще поменял кое что и в коде не знаю как показать только но сообщением ниже покажу отдельно.

Вообщем осталась проблема только с тем что позиции пишутся также в кол-ве 359 - ровно столько сколько организаций, а с этим я разобраться не могу

PHP:
скопировать код в буфер обмена
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>Парсер XML данных версия 0.3</title>
  6. </head>
  7. <body>
  8. <?PHP
  9. $start = microtime(true);
  10. // тело скрипта
  11.  
  12. error_reporting( E_ALL );
  13. // коннектимся к базе данных
  14. $mysql_database="sky_db"; //Имя базы данных
  15. $mysql_username="root"; //Имя пользователя базы данных
  16. $mysql_password=""; //Пароль пользователя базы данных
  17. $mysql_host="localhost"; //Сервер базы данных
  18. $dbpf="skydb_"; //Префикс таблиц в базе данных
  19.  //Соединяемся с базой данных
  20. $mysql_connect = mysql_connect($mysql_host, $mysql_username, $mysql_password) or die("Мускуль эррор, соединение не установлено!");
  21. echo "Соединение с БД установлено!<br>";
  22.  //Выбираем базу данных для работы
  23. mysql_select_db($mysql_database);
  24.  //Устанавливаем кодировку для соединения базы данных
  25. mysql_query("SET NAMES utf8");
  26.  
  27. if (file_exists('load_3_full-2.xml')) {
  28.     $xml = simplexml_load_file('load_3_full-2.xml');
  29. echo '<pre>';
  30. //echo $xml;
  31. //var_dump($xml);
  32. echo '</pre>';
  33. } else {
  34.     exit('Ошибка обработки! нет load_3_full-2.xml.');
  35. }
  36. echo 'Время выполнения скрипта: '.(microtime(true) - $start).' сек.';
  37.  
  38.  foreach($xml->Clients as $Client) {
  39.          
  40.         foreach($Client->Client as $Client_data) {
  41.  
  42.         $Client_name = $Client_data->ClientName;
  43.         $Client_INN = $Client_data->ClientINN;
  44.         $Client_pwd = $Client_data->ClientPass;
  45.                 // ~~~
  46.                                 $r = mysql_query('SELECT count(*) from skypositions_org WHERE inn="'.$Client_INN.'"');
  47.                 $a = mysql_fetch_row($r);
  48.         //      echo $a;
  49.                 if ($a[0] != 0)
  50.                 {
  51.                         mysql_query('DELETE FROM skypositions_org WHERE inn="'.$Client_INN.'"');
  52.                 }
  53.  
  54. // конец контрагентам, теперь давай запишем заново из xml файлика
  55.  
  56.                     mysql_query('INSERT INTO skypositions_org (organization, inn, passwd) VALUES("'.$Client_name.'", "'.$Client_INN.'", "123123123")');
  57.                         echo mysql_error();
  58.                 //~~~~
  59.  
  60.                 foreach($Client_data->Positionss->Position as $Positions) {
  61.        
  62.                         $pozition_numb = $Positions->Number;
  63.                         $model_poz = $Positions->Model;
  64.                         $pole1 = $Positions->Usluga1;
  65.                         $pole2 = $Positions->Usluga2;
  66.                         $pole3 = $Positions->Usluga3;
  67.                         $pole4 = $Positions->Usluga4;
  68.                         $pole5 = $Positions->Usluga5;
  69.                         $pole6 = $Positions->Usluga6;
  70.                         $pole7 = $Positions->Usluga7;
  71.                         $pole8 = $Positions->Usluga8;
  72.                         $pole9 = $Positions->Usluga9;
  73.                         $pole10 = $Positions->Usluga10;
  74.                         $pole11 = $Positions->Usluga11;
  75.                         $Curr_date = $Positions->Date;
  76.                         $Curr_time = $Positions->Time;
  77.  
  78.  
  79.                 }
  80.  
  81.         if(!$f=mysql_query('INSERT INTO sky_positions (num, pozition_num, Model, pole1, pole2, pole3, pole4, pole5, pole6, pole7, pole8, pole9, pole10, pole11, date, time) VALUES ("'.$numb.'", "'.$pozition_numb.'", "'.$model_poz.'", "'.$pole1.'", "'.$pole2.'", "'.$pole3.'", "'.$pole4.'", "'.$pole5.'", "'.$pole6.'", "'.$pole7.'", "'.$pole8.'", "'.$pole9.'", "'.$pole10.'", "'.$pole11.'", "'.$Curr_date.'", "'.$Curr_time.'")')){
  82.                         echo mysql_error();
  83.                 }
  84.                
  85. // конец
  86.  
  87.         }
  88.        
  89. }
  90.  
  91. ?>
  92. </body>
  93. </html>

(Отредактировано автором: 25 Ноября, 2012 - 18:12:59)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« XML и его обработка »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB