Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 9 Ответов
  • 1295 Просмотров
*

Paha_web

  • Захожу иногда
  • 166
  • 1 / 0
  • Еще правок хотите?
Всем привет. Мучаюсь уже 3й день.
Пишу парсер XML документа. Документ очень большой, 34тыс. записей. Начал использовать библиотеку simplexml_load_file, но потом оказалось что она не тянет большие файлы, пришлось юзать XMLReader. Вобщем парсить получилось. Потом столкнулся с другой проблемой, - при генерации запросов в БД формировалась переменная из кучи запросов, около 34тыс. INSERT или UPDATE, так вот, с такой огромной переменной не получалось выполнить запрос в БД. Я решил создавать простые txt файлы по 400 запросов в каждом. Файлы теперь создаются с готовыми запросами, теперь осталось тупо взять и считать запросы из каждого файла и выполнить их.
Я беру открываю 1 файл(любой) там где 400запросов, генерирую запрос и пытаюсь его выполнить в MySQL, ничего не получается. Страница грузится грузится, а потом просто останавливается. У меня ощущение что не хватает опять памяти. Я не знаю что делать, как быть с этой проблемой! Помогите пжл., очень срочно нужно доделать. Спасибо.

Вот ниже кусок кода, тут только чтение из файла и выполнение запроса.

Код
class ObjectsModelUpdate_xml extends JModel
{
   
   
    function del_queries_files() {
 
        $dir  = 'update_xml/update_queries/';
        foreach (glob($dir.'*.*') as $filename) {
            //echo "$filename size " . filesize($filename). "\n<br>";
            JFile::delete($filename);
        }
 
    }
   
 
   
 
    function save_queries($count,$sql){
       
        if($count==400){
            $this->del_queries_files();
        }
       
        echo $count.'<br>';
 
         $file="update_xml/update_queries/$count.txt";
 
        if( !file_exists($file)) {
            $fp = fopen($file, "w");
            fwrite($fp, $sql);
         }
        fclose ($fp);   
     
     
     }
 
 
    function read_queries_files() {
 
        $dir  = 'update_xml/update_queries/';
        foreach (glob($dir.'*.*') as $filename) {
           
            $this->read_queries($filename);   
 
        }
 
    }
 
     
    function read_queries($file){
     
        if(file_exists($file)) {
            $fp = fopen($file, "r");
            $sql = "";   
            while(!feof($fp)) {
                $sql .=fgets($fp); //тут читаю из файла и генерирую запрос. Может тут загвоздка?
            }
        }
        fclose ($fp);   
       // unset($fp);
     
        if($sql){
            $this->insert_in_db($sql);
        }
       
      //  unset($sql);
       
      //  echo memory_get_usage;
   
    }
   
   
    function insert_in_db($query){
        $db=& JFactory::getDBO();   
        $db->setQuery($query);
             if(!$db->queryBatch()) {
                 echo __LINE__.$db->stderr();
             }
       // unset($query);
         
    }   
   
   
    function getUpdate()
    {
 
       
      set_time_limit(0); 
      ini_set('memory_limit', '-1');
 
 
        $this->read_queries('update_xml/update_queries/400.txt');
 
   }
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
разбивай файл XML на файлы поменьше, далее обрабатывай свои файлы в директории аяксом отработал удалил вернул управление и так далее
вот как разбивать файл $f
Код: php-brief
	private function division($f)
{
$file = fopen(JPATH_ROOT . '/tmp/' . $f, "r"); // исходник
$name = JPATH_ROOT . '/tmp/'; // результат
$rash = ".xml"; // расширение файла с результатами
$max = 7; // количество объектов которое запихать в 1 файл
$count = 1; // счетчик
$cnt = 0; // счетчик
$out = $this->new_file($name . $count . $rash);

// идем на начало контента
do {
$str = fgets($file, 10000);
if (strtolower(trim($str)) == "<ads>") break;
} while ($str);


// копируем в файлы
while ($str = fgets($file, 10000)) {
// поиск конца блока
$flag = strtolower(trim($str)) == "</object>";
if ($flag && $cnt + 1 == $max) {
$cnt = 0;
fputs($out, $str . "</ADS>\n</LISTINGS>");
fclose($out);
$count++;
$out = $this->new_file($name . $count . $rash);
$isave = false;
} // копируем все подряд
else {
if ($flag) {
$cnt++;
$isave = true;
}
fputs($out, $str);
}

}

fclose($out);
fclose($file);
unlink($name . $count . $rash); // удаляем последний файл :)
}

читай файл
Код: php-brief
function read_queries($file){
return file_get_contents($file);
}
и не стоит это даже в функцию оборачивать. Так как это обертка стандартной. И зачем спамить в разных отделах
http://joomlaforum.ru/index.php/topic,295707.msg
*

Paha_web

  • Захожу иногда
  • 166
  • 1 / 0
  • Еще правок хотите?
Спасибо. Прошу прощения за спам.
Сейчас читает и записывает только один файл. Когда я ставлю в цикл все файлы, то все равно загрузка прекращается.
Что делать?
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
здесь должна быть связка. HTML файл отправляет AJAX ззапрос php файл обрабатывает. Берет в каталоге один файл выполняет с него запросы и удаляет. По завершению отправляет ответ файлу HTML, тот соответственно опять посылает запрос на обработку следующего. И так до тех пор пока в каталоге не останется файлов для обработки
*

Paha_web

  • Захожу иногда
  • 166
  • 1 / 0
  • Еще правок хотите?
Ага. Спасибо. Смотрю все файлы пишет через раз, 2 раза записало а на третий нехочет  :(. Придется аяком делать. Нехотелось...  ;D
*

Paha_web

  • Захожу иногда
  • 166
  • 1 / 0
  • Еще правок хотите?
Скажите а как увеличить время ожидания ответа AJAX ?

Пробую
Код
function send_oper(file,oper){

                    var fd = new FormData();
                    fd.append('file', file);
                    fd.append('oper', oper);
                    $.ajax({
                      timeout:500000,
                      type: 'POST',
                      url: 'index.php?option=com_objects&task=update_xml&format=raw',
                      data: fd,
                      processData: false,
                      contentType: false,
                      dataType: "json",
                      success: function(data) {


timeout:500000, но все равно ожидание только 1минута. А разбитие на файлы через AJAX идет минут 5.
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Обязательно такой XML парсить и в базе хранить? Может быть хранить его как XML а выборку делать, используя xslt + xpath ? Будет работать в разы быстрее! Это конечно сложнее но я бы так и поступил..
интернет-блог: http://websiteprog.ru
*

Paha_web

  • Захожу иногда
  • 166
  • 1 / 0
  • Еще правок хотите?
Да обязательно. Я уже все сделал. Осталось увеличить время ожидания. МОжно конечно сделать через редирект создание файлов с запросами, но я хочу сделать все аяксом.
Я вот пробую ставить время ожидания до минуты, тогда все срабатывает. А если больше минуты, то стопорится на 1 минуте хоть тресни.
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Я вот пробую ставить время ожидания до минуты, тогда все срабатывает. А если больше минуты, то стопорится на 1 минуте хоть тресни.
Вы создайте колбэк функцию на ошибке, возможно на время ожидания ответа влияет опция max_execution_time в настройках php
интернет-блог: http://websiteprog.ru
*

Paha_web

  • Захожу иногда
  • 166
  • 1 / 0
  • Еще правок хотите?
Ничего не получается. Зависает скрипт опять.  :'( Проект завалил... :(

Вот код:

Код
<?php
// Запрет прямого доступа.
defined('_JEXEC') or die;

jimport( 'joomla.application.component.modellist' );
jimport('joomla.utilities.date');

class ObjectsModelUpdate_xml extends JModel
{
    var $count_queries = 500; // по сколько запросов запихивать в файл
    var $objects;
    var $sub_objects;
  
    function del_queries_files() {
        $dir  = 'update_xml/update_queries/';
        foreach (glob($dir.'*.*') as $filename) {
            JFile::delete($filename);
        }
    }

    function save_queries($id_count,$count,$sql){

        if($id_count<10){
            $id_count='0'.$id_count;
        }
         $file="update_xml/update_queries/".$id_count."_".$count.".txt";
        
        file_put_contents($file, $sql);
          
     }

    function read_queries_files() {
        $dir  = 'update_xml/update_queries/';
        $files = "";

        foreach (glob($dir.'*.*') as $filename) {
            $files .= $filename.',';
        }

        return substr($files, 0, -1); ;
        
     }

    
    function read_queries($file,$oper){
        $sql = file_get_contents($file);
        if($sql){
             $this->insert_in_db($sql,$file,$oper);
        }
    }
    
    
    function insert_in_db($query,$file,$oper){
        $db=& JFactory::getDBO();    
        
      //  echo $query;
        
        $db->setQuery($query);
             if(!$db->queryBatch()) {
                $type = 'error';
                //$type = 'success';
      //          echo __LINE__.$db->stderr();
             }else{
                JFile::delete($file);
                $type = 'success';
                $message = 'OK';
             }
          // echo $oper;  
          $result = array('type'=>$type,'oper'=>$oper,'message'=>$message,'files'=>$this->read_queries_files());
          print json_encode($result);                
    }  

    
    function parse_objects(){

       //$this->del_queries_files();
        
       $xmlstr = simplexml_load_file(JURI::base().'update_xml/SiteData.xml');        
  
   // if($xmlstr){
  
       $message = "";
       $message_report = "";
       $count_object_add = 0;
       $count_object_upd = 0;
       $sql = "";
       $sql2 = "";
       $sql3 = "";
       $sql4 = "";
       $sql5 = "";

       $db=& JFactory::getDBO();

       foreach ($xmlstr->Buildings->Building as $building){ //объекты
         $blockid = (int)$building->attributes()->blockid;
         $districtid = (int)$building->attributes()->districtid;
    
        $BlockSubways = $xmlstr->xpath("/Ads/BlockSubways/Subway[@blockid=\"$blockid\"]");    
        $count_BlockSubways = count($BlockSubways);
          $metro = '';
          for($i=0;$i<=$count_BlockSubways;$i++){
            if($i<=$count_BlockSubways-1){
                $metro .= $BlockSubways[$i]->attributes()->name;  
                if($i<$count_BlockSubways-1){
                $metro .= ', ';    
                }
            }
          }  
          
          /////////////////////////////////////////////////////////////////////////

                    $Block = $xmlstr->xpath("/Ads/Blocks/Block[@id=\"$blockid\"]");    
                    $address = $Block[0]->attributes()->street;
                    $address_in_map = $Block[0]->attributes()->latitude.','.$Block[0]->attributes()->longitude;
                    $nazvanie_doma = $Block[0]->attributes()->title;
                    $builderid = (int)$Block[0]->attributes()->builderid;
                    $Builder = $xmlstr->xpath("/Ads/Builders/Builder[@id=\"$builderid\"]");
                    $builder_name = $Builder[0]->attributes()->name;
                    $District = $xmlstr->xpath("/Ads/Districts/District[@id=\"$districtid\"]");
                    $rayon = $District[0]->attributes()->name;

                    if((int)$District[0]->attributes()->regionid == 2){
                        $rayon = $rayon.' Л.О.';
                    }

          $counter = 0;  
          $building_id  = (int)$building->attributes()->id;
          $buildingtype = $building->attributes()->buildingtype; //тип постройки
          $dead_date = $building->attributes()->endingperiod;
          $dead_year = date('Y',strtotime($dead_date));
          $dead_mounth = date('m',strtotime($dead_date));
          $dead_kvartal = intval((date($dead_mounth)+2)/3);
          $corp = $building->attributes()->corp;
          $floors = $building->attributes()->floors;
          $metro = addslashes($metro);  
          $rayon = addslashes($rayon);  
          $address = addslashes($address);  
          $address_in_map = addslashes($address_in_map);  
          $nazvanie_doma = addslashes($nazvanie_doma.' '.$corp);  
          $builder_name = addslashes($builder_name);  
          $buildingtype = addslashes($buildingtype);  
          
          $sql_count = "SELECT COUNT(*) FROM `#__objects`
                        WHERE `building_id` = '$building_id'";
                          
          $db->setQuery($sql_count);
          $count = $db->loadResult();

          $oper = "";
            
          if($count == 0){
                    $sql .= " INSERT INTO `#__objects` (
                    `added_by`,
                    `metro_name`,
                    `raion`,
                    `dead_year`,
                    `dead_kvartal`,
                    `dead_mounth`,
                    `address`,
                    `address_in_map`,
                    `modified`,
                    `modified_by`,
                    `created`,
                    
                    `zastroy`,
                    `name`,
                    `korpus`,
                    `type`,
                    `flors`,
                    `building_id`
                    )
                    
                    VALUES   (
                    '956',
                    '$metro',
                    '$rayon',
                    '$dead_year',
                    '$dead_kvartal',
                    '$dead_mounth',
                    '$address',
                    '$address_in_map',
                    'NOW()',
                    '956',
                    'NOW()',
                    '$builder_name',
                    '$nazvanie_doma',
                    '$corp',
                    '$buildingtype',
                    '$floors',
                    '$building_id'
                    )
                    ; ";

                    $oper = "создан";
                    $count_object_add++;
                    
          }else{
                    $sql .= " UPDATE `#__objects` SET
                            `metro_name`='$metro',
                            `raion`='$rayon',
                            `dead_year`='$dead_year',
                            `dead_kvartal`='$dead_kvartal',
                            `dead_mounth`='$dead_mounth',
                            `address`='$address',
                            `address_in_map`='$address_in_map',
                            `zastroy`='$builder_name',
                            `name`='$nazvanie_doma',
                            `korpus`='$corp',
                            `type`='$buildingtype',
                            `flors`='$floors'
                             WHERE `building_id` = '$building_id'; ";
                    
                     $oper = "обновлен";  
                     $count_object_upd++;  
                    }
                
                    if($oper){
                        $message .= "<tr><td>Объект ".$oper."</td><td>".$nazvanie_doma;
                        $message_report .="Объект ".$oper." | Название объекта - ".$nazvanie_doma;
                        if($corp){
                            $message .=", корпус ".$corp;
                            $message_report .=", корпус ".$corp;  
                        }
                       $message_report .=" \r\n";
                       $message .= "</td></tr>";
                    }
                    
            $counter++;        
          
            } ///конец объкты
            
          
                $this->del_queries_files(); //удаляе все файлы с запросами
                $this->save_queries(0,$counter,$sql); //сохраняем сгенерированные запросы в файл
                
                $this->read_queries($this->read_queries_files());
    
        
          
          
           //JFactory::getApplication()->redirect('/index.php?option=com_objects&task=update_xml&oper=parse_sub_objects');
                            
         // $result = array('oper'=>'parse_objects','type'=>'success','message'=>'save in file objects','files'=>$this->read_queries_files());
      
        //  print json_encode($result);              

    }  
  


    function search_object_id($val){
        
        
        //$val = '88';
        
        foreach ($this->objects as $key => $value) {
         if ($value['building_id']==$val) {
         $found = $value['object_id'];
         break;
         }
        }
        
        return $found;        
        
    }


    function search_sub_object_id($val){
        
        
        //$val = '88';
    
        foreach ($this->sub_objects as $key => $value) {
         if ($value['apartment_id']==$val) {
         $found = $value['sub_object_id'];
         break;
         }
        }
        
        return $found;        
        
    }
    
    
    function parse_sub_objects(){

//квариры
      //    echo 111;  
      //  $this->del_queries_files();

    

        $db=& JFactory::getDBO();
        
         // $sql2="";
          $count_kvart_add = 0;
          $count_kvart_upd = 0;
          $count_kvart_not_add = 0;
          $count_kvart_not_add_message = '';  
          $count_kvart_not_add_message_report = '';
        
        $counter = 0;  
          
        $counter2 = $this->count_queries;
        
        //echo $counter2;
        
        $counter3 = 0;


            $sql2 = "SELECT object_id,building_id FROM `#__objects`";
            $db->setQuery($sql2);
            $this->objects = $db->loadAssocList();            


            $sql3 = "SELECT sub_object_id,apartment_id FROM `#__sub_objects`";
            $db->setQuery($sql3);
            $this->sub_objects = $db->loadAssocList();            


 //           echo $this->search_object_id(88);

//$category=array();
//$category[]=array('idx'=>"12",'ParentId'=>"987",'name'=>"987");
//$category[]=array('idx'=>"18",'ParentId'=>"9487",'name'=>"986");

//print_r($category);

//$found = false;
//$t = microtime(1);

//echo number_format(microtime(1)-$t,5,'.','');
//echo "\n";
//var_dump($found);

//echo "=============\n";




        
        $reader = new XMLReader();
        $reader->open('update_xml/SiteData.xml');

        $msg = '';
        
        $sql4 = '';

        while ($reader->read()) {


            if ($reader->name == "Apartment") {
          //      echo '<p>'.$reader->getAttribute("kvnumber").'</p>';

                $building_id = (int)$reader->getAttribute("buildingid");
                $apartment_id = (int)$reader->getAttribute("id");

        //    $sql2 = "SELECT object_id FROM `#__objects`
        //            WHERE `building_id` = '$building_id'";
        //    $db->setQuery($sql2);
        //    $object_id = $db->loadResult();            
            
            $object_id = '1';
            
            $object_id = $this->search_object_id($building_id);            
            
         //   $sql3 = "SELECT sub_object_id FROM `#__sub_objects`
         //            WHERE `apartment_id` = '$apartment_id'";
         //   $db->setQuery($sql3);
        //    $sub_object_id = $db->loadResult();    
            $sub_object_id = '';
                  
            $sub_object_id = $this->search_sub_object_id($apartment_id);    
            
                $rooms = $reader->getAttribute("rooms");
                $flatfloor = $reader->getAttribute("flatfloor");
                $facing = $reader->getAttribute("decoration");
                $top_size = $reader->getAttribute("height");
                $kv_number = $reader->getAttribute("kvnumber");
                $base_cost = $reader->getAttribute("baseflatcost");
                $full_cost = $reader->getAttribute("flatcostwithdiscounts");
                $cost_each_m = $reader->getAttribute("metrecostwithdiscounts");
                $space = $reader->getAttribute("stotal");
                $kichen_space = $reader->getAttribute("skitchen");
                $section = $reader->getAttribute("section");
            
            if(!$sub_object_id){
                
                 if($object_id){
                
                    $sql4 .= "INSERT INTO `#__sub_objects` (`object_id`,`rooms`,`floor`,`facing`,`space`,`kichen_space`,`section`,`top_size`,`kv_number`,`base_cost`,`full_cost`,`cost_each_m`,`apartment_id`) VALUES ('$object_id','$rooms','$flatfloor','$facing','$space','$kichen_space','$section','$top_size','$kv_number','$base_cost','$full_cost','$cost_each_m','$apartment_id');\r\n";
                    
                     $count_kvart_add++;
                  
                  }else{
                     $count_kvart_not_add++;  
                     $count_kvart_not_add_message .= '<tr><td>Не найден объект с ID </td><td>'.$building_id."</td></tr>";  
                     $count_kvart_not_add_message_report .= "Не найден объект с ID $building_id \r\n";
                  }

                }else{
                    $sql4 .= "UPDATE `#__sub_objects` SET `rooms`='$rooms',`floor`='$flatfloor',`facing`='$facing',`space`='$space',`kichen_space`='$kichen_space',`section`='$section',`top_size`='$top_size',`kv_number`='$kv_number',`base_cost`='$base_cost',`full_cost`='$full_cost',`cost_each_m`='$cost_each_m' WHERE `apartment_id` = '$apartment_id';\r\n";
                
                  $count_kvart_upd++;                    
                }

            $counter++;
            if($counter == $counter2){
            $counter3++;
            
                echo '<p><b>'.$counter2.'</b>'.$sql4.'</p>';//.'<hr>';
            
              //  $this->save_queries($counter3,$counter,$sql4);

                $counter2 = $counter2 + $this->count_queries;
                unset($sql4);
                $sql4 = "";  

                
/*                
        if($counter3<10){
            $id_count='0'.$counter3;
        }
         $file="update_xml/update_queries/".$id_count."_".$counter.".txt";
        if( !file_exists($file)) {
            $fp = fopen($file, "x");
            fwrite($fp, $sql);
            fclose ($fp);
        }                
                
  */        //   echo $sql4;  
                
                
                
          
            }

            }elseif($reader->name == "Apartments" && $reader->nodeType == XMLReader::END_ELEMENT  ) {

             //   $this->save_queries($counter3,$counter,$sql4);
              
                echo $sql4.'<hr>';
                echo 'end';
                unset($sql4);
            }

        }
        
        unset($reader);

    //    echo $sql4;
  
        //  $result = array('oper'=>'parse_sub_objects','type'=>'success','message'=>'save in file sub_objects','files'=>$this->read_queries_files());
      
       //   print json_encode($result);              
    
        
           // конец квартиры
  
    
    }
    
    function getUpdate_ajax()
    {
      
      
      $file = JRequest::getVar('file');
      $oper = JRequest::getVar('oper');
      
      
          if($oper == 'parse_objects'){
            
            $this->parse_objects();
            
          }elseif($oper == 'objects_save_in_db' or $oper == 'sub_objects_save_in_db'){
        //    echo $file;
        //    echo $oper;
        
            $this->read_queries($file,$oper);        
          
          }elseif($oper == 'parse_sub_objects'){
            
            $this->parse_sub_objects();        
          
          }
          
          
          
        //  save_queries
      
      

     }
    
    
    
    

    function getUpdate()
    {
      set_time_limit(0);  
      ini_set('memory_limit', '-1');
?>
 
 <script type="text/javascript">

var files = [];

function find(array, value) {
  for(var i=0; i<array.length; i++) {
    if (array[i] == value) return i;
  }
  return -1;
}
 
function send_oper(file,oper){




                    var fd = new FormData();
                    fd.append('file', file);
                    fd.append('oper', oper);
                    $.ajax({
                      async: false,
                      timeout: 180000,
                      type: 'POST',
                      url: 'index.php?option=com_objects&task=update_xml&format=raw',
                      data: fd,
                      processData: false,
                      contentType: false,
                      dataType: "json",
                      success: function(data) {
//          $result = array('oper'=>'parse_objects','type'=>'success','message'=>'save in file objects','files'=>$this->read_queries_files());
                    
                        
                      if(data.type=='success'){

                      
                      
                          if(data.oper=='parse_objects' && data.files){
                                var get_files = data.files;
                             var re = /\s*,\s*/;
                                var files = get_files.toString().split(re);
                        
                               // alert(files);
                                
                                send_oper(files[0],'objects_save_in_db');
//                                
//                                
//                    
                          }else if(data.oper=='objects_save_in_db'){
//                                  
                                var get_files = data.files;
                             var re = /\s*,\s*/;
                                var files = get_files.toString().split(re);
//                              
                              //  alert(data.files);
      
                                 if(data.files){ //&& type == 'objects'){
                                 //   files.splice(find(files, file),1);
                                    send_oper(files[0],'objects_save_in_db');
                                 }else{
                                    
                                  send_oper('','parse_sub_objects');  
                                    
                                 }
//                            
//                            
                          }else if(data.oper=='parse_sub_objects'){
                            
                                var get_files = data.files;
                             var re = /\s*,\s*/;
                                var files = get_files.toString().split(re);
                                
                                //alert(files);
                                
                                send_oper(files[0],'sub_objects_save_in_db');
                        
                          }else if(data.oper=='sub_objects_save_in_db' && data.files){
                            

                                    var get_files = data.files;
                                    var re = /\s*,\s*/;
                                    var files = get_files.toString().split(re);
                               //     alert(files);


                                 if(typeof files !== 'undefined'){ //&& type == 'objects'){
                                   // files.splice(find(files, file),1);
                                    
                                  //  alert(files);
                                    send_oper(files[0],'sub_objects_save_in_db');
                                 }

                           }
                        
                       }else if (data.type='error'){
                         alert('Ошибка!');
                       }
                      },
                      error: function(data) {
                      }
              
                    });  
    
    
}
 
// function dispatch_operations(oper){
    
   //  if(oper=='parse_objects'){
   //     send_oper('',oper);
  //   }//else if(oper=='objects_save_in_db'){
      //  send_oper('',oper);
    // }
//}




//$(document).ready(function()
//{
    
   //dispatch operations
  //  dispatch_operations('parse_objects');
    
    
//send_oper('','parse_objects');    

//var get_files = '<?php //echo $this->read_queries_files(); ?>';
//var re = /\s*,\s*/;
//var files = get_files.toString().split(re);


//alert(files);

//alert(files[0]);


//send_oper('','parse_sub_objects');    
//send_oper(files[0],'sub_objects_save_in_db');    


  //  alert(111);
    
    
//});





</script>
<?php

            
    //   $oper = JRequest::getVar('oper');
      
      
    //      if($oper == 'parse_sub_objects'){

         //   $this->del_queries_files();
            
            $this->parse_sub_objects();
            
       //   }else{
            
      //      $this->parse_objects();
      //    }  
   //      
      
      
 ?>
 
  <script type="text/javascript">      
      

//     var get_files = '<?php //echo $this->read_queries_files(); ?>';
 //    var re = /\s*,\s*/;
  //   var files = get_files.toString().split(re);
    
  //   send_oper(files[0],'sub_objects_save_in_db');    
 
</script>
<?php        
      
      
      

          
                
                  $message  = "<tr>".$message."</tr>";  
                  $message .= "<tr><td></td><td>&nbsp;</td></tr>";  
                  $message .= "<tr><td>Планировок добавлено</td><td>".$count_kvart_add."</td></tr>";
                  $message .= "<tr><td>Планировок обновлено</td><td>".$count_kvart_upd."</td></tr>";
                  $message .= "<tr><td>Планировок не добавлено</td><td>".$count_kvart_not_add."</td></tr>";
                  $message .= $count_kvart_not_add_message;  
                  
                $message_report .="\r\n";
                $message_report .="Планировок добавлено ".$count_kvart_add."\r\n";
                $message_report .="Планировок обновлено ".$count_kvart_upd."\r\n";
                $message_report .="Планировок не добавлено ".$count_kvart_not_add."\r\n";
                $message_report .=$count_kvart_not_add_message_report;
                
                
              
      
if($count_object_upd > 0 or $count_object_add > 0 or $count_kvart_add > 0 or $count_kvart_upd > 0 ){
  $message  = "
  <p>Загрузка прошла успешно</p>
  <p>Загружено ".$count_object_add." объекта</p>
  <p>Обновлено ".$count_object_upd." объекта</p>
  <p>Список объектов</p>
  <table><tr><th>Операция</th><th>Название объекта</th></tr>".$message."</table>";
              
$message_report = date('h:i:s d.m.Y')."\r\n
Загрузка прошла успешно\r\n
Загружено ".$count_object_add." объекта\r\n
Обновлено ".$count_object_upd." объекта\r\n
Список объектов\r\n
".$message_report."\r\n
-------------------------------\r\n";
          }else{
$message_report = date('h:i:s d.m.Y')."\r\n
Ничего не загружено :(\r\n
-------------------------------\r\n";

$message  = "Ничего не загружено :("; }
      
 //       }else{

//$message_report = date('h:i:s d.m.Y')."\r\n
//Ошибка в файле\r\n
//-------------------------------\r\n";
        
//$message = "Ошибка в файле"; }




echo "<div class='upd_xml'>".$message."</div>";
          

        $file="update_xml/update_reports/".date('d_m_Y').".txt";
        //если файла нету... тогда
        if( !file_exists($file)) {
            $fp = fopen($file, "w"); // ("r" - считывать "w" - создавать "a" - добовлять к тексту), мы создаем файл
            fwrite($fp, $message_report);
        }else{
            $fp = fopen($file, "a+"); // ("r" - считывать "w" - создавать "a" - добовлять к тексту), мы создаем файл
            fwrite($fp, $message_report."\r\n");
        }
        fclose ($fp);          
        
          
  
    }
}
?>

Точка входа function getUpdate()


Не судите строго...
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться