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 :: необьяснимое происходит в функции, несколько раз записывает в базу одну и туже информацию

 PHP.SU

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


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

> Описание: Функция необычным образов без цикла несколько раз записывает в базу инормацию
Hazrat
Отправлено: 07 Июня, 2012 - 11:05:59
Post Id


Новичок


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


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




Народ, нужна помощь, внизу указана функция, она по условию должна прописывать в базу один раз информацию спарсенную а она циклически вводит несколько раз в базу. вроде в цикла нет в том месте где отправляю sql запрос.

PHP:
скопировать код в буфер обмена
  1. function PARSER () {  
  2.    
  3.     /* - Здесь мы будем вытасскивать с базы все товары и по очереди добавлять в новую таблицу, группируем - */
  4.     # $basa_sql_select_tovar = 'SELECT * FROM '
  5.    $art = '557445';  
  6.     include './libs/simple_html_dom/simple_html_dom.php';  # Подключаем библеотеку  DOM - simple_dom_html
  7.    $html = new simple_html_dom();
  8.     $art = trim($art);
  9.     $html->load_file("http://merlion/");  # парсим с сайта мерлиона
  10.    #$html = file_get_html('./files/parrrrrser.htm');
  11.    
  12.     /*---------- Переменные которые работают с SIMPLE HTML DOM -- они подготавливают документ для марсинга ----------*/
  13.    
  14.     $name =  iconv('windows-1251','utf-8',$html->find('h1',0)->plaintext); # Название товара
  15.    
  16.     $table = $html->find( 'table.text tbody', 1); # таблица которую ьуду парсить
  17.    $tr = $table->find('tr');                     # тег tr где находиться нужная информация
  18.    
  19.     static $cpu  = '';       # Процессор (core i3)
  20.    static $cpu_parent = ''; # AMD vs INTEL
  21.    static $ram  = '';       # RAM  
  22.    static $hdd  = '';       # HDD
  23.    static $video = '';      # VIDEO GRAPHIC
  24.    static $diagonal = '';   # Диагональ
  25.    static $os = '';         # Операционная система
  26.    static $model_cpu = '' ; # Модель процессора ( 2600K == core i7)  
  27.    static $model = '';      # Модель Ноутбука  
  28.    static $part_no = '';    # Артикул производителя
  29.    static $brand = '';      # Бренд производителя
  30.    static $seria = '';      # Серия ноутбука. например ThinkPad
  31.    
  32.     foreach ( $tr as $value ) { # В данном цикле перебираем все возможные описания товара
  33.        
  34.         $info  =  iconv('windows-1251','utf-8',$value->first_child()->first_child()   == '' ? $value->first_child()->plaintext : $value->first_child()->first_child()->plaintext);
  35.         $info_ =  iconv('windows-1251','utf-8',$value->last_child()->plaintext )  ;
  36.         $info  = trim($info);
  37.         $info_ = trim($info_);
  38.        
  39.         if ($info == 'Ноутбуки Процессор Серия') {
  40.             $cpu  = $info_;
  41.         } elseif ($info == 'Ноутбуки Процессор Производитель') {
  42.            
  43.             if ($info_ == 'AMD') {
  44.                 $cpu_parent = 'AMD';
  45.             } elseif ($info_ == 'INTEL') {
  46.                 $cpu_parent = 'INTEL';
  47.             }
  48.                        
  49.         } elseif ($info == 'Ноутбуки Объем оперативной памяти') {
  50.             $ram = $info_;
  51.         } elseif ($info == 'Жесткий диск') {
  52.             $hdd = $info_;
  53.         } elseif ($info == 'Ноутбуки Модель Графического Контроллера') {
  54.             $video = $info_;
  55.         } elseif ($info == 'Ноутбуки Размер экрана') {
  56.             $diagonal = $info_;
  57.         } elseif ($info == 'Операционная система') {
  58.             $os = $info_;
  59.         } elseif ($info == 'Ноутбуки Модель процессора') {
  60.             $model_cpu = $info_;
  61.         } elseif ($info == 'Модель') {
  62.             $model = $info_;
  63.         } elseif ($info == 'PatrNumber/Артикул Производителя') {
  64.             $part_no = $info_;
  65.         } elseif ($info == 'Брэнд') {
  66.             $brand = $info_;
  67.         } elseif ($info == 'Ноутбуки Серия') {
  68.             $seria = $info_;
  69.         }
  70.        
  71.     }
  72.    
  73.     $cpu = $cpu_parent.' '.$cpu;  # Добавляем производителя процессорв в начало
  74.    $sql_insert_tovar = "INSERT INTO `notebooks` (`No`, `type`, `brand`, `partNo`, `model`, `seria`, `name`, `cpu`, `ram`, `hdd`, `video`, `cpu_parent`, `os`, `model_cpu`, `price`, `avail`)
  75.                         VALUES ( '$art', 'Ноутбуки', '$brand', '$part_no', '$model', '$seria', '$name', '$cpu', '$ram', '$hdd', '$video', '$cpu_parent', '$os', '$model_cpu', '', '');";
  76.     DB_MYSQl($sql_insert_tovar);
  77.  
  78.      
  79.      
  80.       /*************** И так перебор информации окончен, начнем перебирать изображения и сохранять в базу данных ************
  81.       *---------------------------------------------------------------------------------------------------------------------*/
  82.       /*
  83.       $img_html = $html->find('td.cat-r1');
  84.       $icount = 0;
  85.       $img_sql = array();
  86.       foreach ($img_html as $images) {
  87.          $img_link = $images->first_child()->href;
  88.          $thumbs =  $images->first_child()->first_child()->src;
  89.          
  90.          $name_img = $art.'_image_'.$icount.'.jpg'; # Название фотографий
  91.          copy($thumbs ,'./parser/thum/'.$name_img);
  92.          copy($img_link ,'./parser/img/'.$name_img);
  93.  
  94.          
  95.    
  96.          $img_sql[$icount] = $name_img;
  97.          $icount++;
  98.       }
  99.       */
  100.      
  101.      
  102.          
  103.  
  104.    
  105.  
  106.  }


-----
Я мирный человек! Мне не нужна Война! Мне нужен МИР! желательно весь...
 
 Top
Viper
Отправлено: 07 Июня, 2012 - 12:24:52
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


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





какого вида запрос будет?


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с СУБД »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB