Новичок
Покинул форум
Сообщений всего: 1
Дата рег-ции: Нояб. 2012
Помог: 0 раз(а)
|
Добрый день!
Помогите пожалуйста вот с какой проблемой, есть парсер, который разбирает xml файл, через эхо подсвечивал переменные из цикла данные все видны и в полном количестве, но при записи в базу пишется только 298 организаций а должно 359. И только 359 позиций (как раз ровно столько сколько организаций почему-то) а должно быть порядка 7400 позиций, прошу помочь разобраться:
UPD!: c Организациями разобрался, оказывается надо было поменять типы столбцов там где явно цифры будут там я сделал INT где буквы с цифрами или буквы там оставил VARCHAR только кол-во символов сделал поменьше.. еще поменял кое что и в коде не знаю как показать только но сообщением ниже покажу отдельно.
Вообщем осталась проблема только с тем что позиции пишутся также в кол-ве 359 - ровно столько сколько организаций, а с этим я разобраться не могу
PHP:
скопировать код в буфер обмена
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Парсер XML данных версия 0.3</title> </head> <body> <?PHP // тело скрипта // коннектимся к базе данных $mysql_database="sky_db"; //Имя базы данных $mysql_username="root"; //Имя пользователя базы данных $mysql_password=""; //Пароль пользователя базы данных $mysql_host="localhost"; //Сервер базы данных $dbpf="skydb_"; //Префикс таблиц в базе данных //Соединяемся с базой данных $mysql_connect = mysql_connect($mysql_host, $mysql_username, $mysql_password) or die("Мускуль эррор, соединение не установлено!"); echo "Соединение с БД установлено!<br>"; //Выбираем базу данных для работы //Устанавливаем кодировку для соединения базы данных echo '<pre>'; //echo $xml; //var_dump($xml); echo '</pre>'; } else { exit('Ошибка обработки! нет load_3_full-2.xml.'); } echo 'Время выполнения скрипта: '.(microtime(true) - $start).' сек.'; foreach($xml->Clients as $Client) { foreach($Client->Client as $Client_data) { $Client_name = $Client_data->ClientName; $Client_INN = $Client_data->ClientINN; $Client_pwd = $Client_data->ClientPass; // ~~~ $r = mysql_query('SELECT count(*) from skypositions_org WHERE inn="'.$Client_INN.'"'); // echo $a; if ($a[0] != 0) { mysql_query('DELETE FROM skypositions_org WHERE inn="'.$Client_INN.'"'); } // конец контрагентам, теперь давай запишем заново из xml файлика mysql_query('INSERT INTO skypositions_org (organization, inn, passwd) VALUES("'.$Client_name.'", "'.$Client_INN.'", "123123123")'); //~~~~ foreach($Client_data->Positionss->Position as $Positions) { $pozition_numb = $Positions->Number; $model_poz = $Positions->Model; $pole1 = $Positions->Usluga1; $pole2 = $Positions->Usluga2; $pole3 = $Positions->Usluga3; $pole4 = $Positions->Usluga4; $pole5 = $Positions->Usluga5; $pole6 = $Positions->Usluga6; $pole7 = $Positions->Usluga7; $pole8 = $Positions->Usluga8; $pole9 = $Positions->Usluga9; $pole10 = $Positions->Usluga10; $pole11 = $Positions->Usluga11; $Curr_date = $Positions->Date; $Curr_time = $Positions->Time; } 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.'")')){ } // конец } } ?> </body> </html>
(Отредактировано автором: 25 Ноября, 2012 - 18:12:59)
|