Advertisement
Guest User

Untitled

a guest
Jul 4th, 2017
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.63 KB | None | 0 0
  1. <?
  2. /*
  3. ### ВНИМАНИЕ! Для того, что бы этот скрипт заработал, необходимо поставить ему расширение .php
  4. ###
  5. ###    Скрипт выводит состояние склада по запрашиваемым позициям
  6. ### для поисковой системы eFind.ru согласно спецификации.
  7. ###
  8. ### Версия: 0.1 (12.04.2007)
  9. ###
  10. ###
  11. ### Параметра вызова:
  12. ###     Поисковый запрос передается в параметре search
  13. ### Метод: GET
  14. ###     Кодировка запроса: UTF-8
  15. ###     Кодировка ответа: Windows-1251
  16. ###
  17. ###
  18. ### Формат базы данных:
  19. ### partname - название позиции (обязательное поле)
  20. ### mfg - производитель
  21. ### note - описание
  22. ### pdf - ссылка на PDF
  23. ### img - ссылка на изображение
  24. ### p1 - розничная цена
  25. ### p2 - мелкооптовая цена
  26. ### p3 - оптовая цена
  27. ### stock - состояние склада (количество позиций на складе или срок поставки)
  28. ###
  29. */
  30.  
  31.     $host = 'localhost';       # Адрес MySQL сервера, например: mysql.mysite.com
  32.    $user = 'admin';       # Имя пользователя базы данных, например: user_stock
  33.    $pass = 'admin';       # Пароль пользователя, например: MswZ2Qs
  34.    $base = 'test136';       # Название базы данных, например: store
  35.   // $tables = 'jos_vm_product, jos_vm_product_price,jos_vm_product_mf_xref,jos_vm_manufacturer';      # Название таблицы с данными, например: stock
  36.     $cond = 'jos_vm_product_price.product_id= jos_vm_product.product_id and  jos_vm_product_price.product_id=jos_vm_product_mf_xref.product_id and  jos_vm_manufacturer.manufacturer_id=jos_vm_product_mf_xref.manufacturer_id'; #условия для содинения таблиц
  37.    $fields ='product_name,product_desc,product_price,product_currency,mf_name'; #поля: название детали, описание, розничная цена, валюта, производитель
  38.    //$fields_create ='product_name,product_desc,product_price,product_currency,mf_name'; #поля: название детали, описание, розничная цена, валюта, производитель
  39.  
  40.  // тестовая таблица
  41.     $tables = 'sdelka_temp';
  42.     $fields_create ='`n1` VARCHAR(64) NOT NULL,`n2` VARCHAR(64),`n3` TINYTEXT,`n4` INT(15)';
  43.  
  44. $file = "logdump.txt"; // Некоторый файл
  45. $fh = fopen($file, "w") or die("Не могу создать файл логов!");
  46.  
  47.  
  48. // Проверка существования файла
  49. $filename = 'dump.csv';
  50. if (!file_exists($filename)) {
  51.     fwrite($fh, "Файл дампа не найден" . "\r\n");
  52.     fclose($fh);
  53.     exit;
  54. }
  55.  
  56.  
  57. if(($dbh = mysql_connect($host, $user, $pass))=== FALSE)
  58.     # Если не удалось соединиться с базой данных, выводим ошибку и выходим
  59.     {
  60.  
  61.        fwrite($fh, "Невозможно присоединится к базе" . "\r\n");
  62.        fclose($fh);
  63.        exit;
  64.  
  65.     }
  66.  
  67.  # Установка текущей базы данных
  68. mysql_select_db($base, $dbh);
  69.      # Если при запросе возникла ошибка, выводим соответствующее сообщение и выходим
  70.         if(mysql_errno() > 0)
  71.         {
  72.            fwrite($fh, 'Невозможно выбрать базу данных' . "\r\n");
  73.            mysql_close($dbh);
  74.            fclose($fh);
  75.            exit;
  76.         }
  77.  
  78.     //$sth = mysql_query("DROP TABLE IF EXIST $tables");
  79.      $sth = mysql_query("CREATE TABLE `".$tables."`($fields_create) ");
  80.      # Если при запросе возникла ошибка, выводим соответствующее сообщение и выходим
  81.  
  82.         if(mysql_errno() > 0) {
  83.           fwrite($fh, 'Таблица существует, все ок ' . "\r\n");
  84.           $sth = mysql_query("DELETE FROM `".$tables);
  85.  
  86.         } else
  87.         {
  88.           fwrite($fh, "CREATE TABLE `".$tables."`( $fields_create )" . "\r\n");
  89.           fwrite($fh, 'Таблица создана' . "\r\n");
  90.          }
  91.  
  92.  
  93. if ( ($handle_o = fopen($filename, "r") ) !== FALSE ) {
  94.     // читаем первую строку и разбираем названия полей
  95.     $columns_o = fgetcsv($handle_o, 1000, ";");
  96.     foreach( $columns_o as $v ) {
  97.        $insertColumns[]="`".addslashes(trim($v))."`";
  98.     }
  99.     $columns=implode(',',$insertColumns);
  100.  
  101.  
  102.     while ( ($data_o = fgetcsv($handle_o, 1000, ";")) !== FALSE) {
  103.       $insertValues = array();
  104.       foreach( $data_o as $v ) {
  105.          $insertValues[]="'".addslashes(trim($v))."'";
  106.       }
  107.       $values=implode(',',$insertValues);
  108.  
  109.      $sth = mysql_query("INSERT INTO `".$tables."` ( $columns ) VALUES ( $values )");
  110.  
  111.      # Если при запросе возникла ошибка, выводим соответствующее сообщение и выходим
  112.         if(mysql_errno() > 0)
  113.         {
  114.            fwrite($fh, "INSERT INTO `".$tables."` ( $columns ) VALUES ( $values )" . "\r\n");
  115.            fwrite($fh, 'SQL ERROR:'.mysql_error());
  116.            fclose($fh);
  117.            exit;
  118.         }
  119.  
  120.     }
  121.  
  122.     mysql_close($dbh);
  123.  
  124.  
  125.     fclose($handle_o);
  126. }
  127.  
  128. else {
  129.     fwrite($fh, "Файл дампа невозможно открыть для чтения" . "\r\n");
  130.     fclose($fh);
  131.     exit;
  132. }
  133.  
  134.  
  135. fclose($fh);
  136.  
  137. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement