Advertisement
votako

price update

Apr 28th, 2014
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.76 KB | None | 0 0
  1. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  2. <?
  3. //подключиться к БД
  4. $hostname = "";
  5. $username = "";
  6. $password = "";
  7. $dbName = "";
  8. $tableName = "j25_virtuemart_products_ru_ru";
  9. $tablePrice = "j25_virtuemart_product_prices";
  10. $tableProducts = "j25_virtuemart_products";
  11.  
  12. //подключение к SQL и DB
  13. $connect = mysql_connect($hostname, $username, $password) or die(mysql_error());
  14. mysql_select_db($dbName) or die(mysql_error());
  15. // подключено
  16.  
  17. //для нормальной записи в MySQL(русские символы)
  18. @mysql_query("Set charset cp1251");
  19. @mysql_query("Set character_set_client = cp1251");
  20. @mysql_query("Set character_set_connection = cp1251");
  21. @mysql_query("Set character_set_results = cp1251");
  22. @mysql_query("Set collation_connection = cp1251_general_ci");
  23.  
  24.  
  25. // Открываем файл в режиме записи изменений(+дата чило.месяц.год)
  26. $file_write = fopen("log/logNoName_".date("d.m.y").".txt", "a+");
  27. $file_write2 = fopen("log/logNoId_".date("d.m.y").".txt", "a+");
  28. $file_write3 = fopen("log/logSucsses_".date("d.m.y").".txt", "a+");
  29.  
  30.  
  31.  
  32. // считываем файл
  33. $file_array = file("название_файла_лежит_рядом");
  34. if(!$file_array){
  35.     echo("Error reading file");
  36. }
  37. else{
  38. // выполняем цикл до конца файла(count();)
  39.     for($i=0; $i<count($file_array); $i++){
  40.    
  41. //      разделяем list(); на столбцы split(); "\t" == табуляцией до конца файла $file_array[$i]
  42. //  приставка f_ для переменных из файла
  43. //  переменная в нормальном виде существует только внутри цикла for(????да)
  44.         list($f_id, $f_name, $f_price, $f_in_stock) = split("\t", $file_array[$i]);
  45.        
  46.         $res = mysql_query("SELECT * FROM $tableName WHERE virtuemart_product_id='$f_id'");
  47.         while($row = mysql_fetch_array($res)){
  48.             $db_id = $row['virtuemart_product_id'];
  49.             $db_name=$row['product_name'];
  50.         }
  51.        
  52. //      проверка кода БД и файла
  53.         if($db_id==$f_id){
  54.             if($db_name==$f_name){
  55. //          записываем все что обновили в файл.
  56.                 $eah = $db_id." ".$db_name." == ".$f_id." ".$f_name."\n";
  57.                 $test1 = fwrite($file_write3, $eah); // Запись в файл
  58.                 if ($file_write3) $allCurrent = 'update price and write sucsses ID+NAME to logSucsses.<br/>';
  59.                 else echo 'ERROR! cant write in file.';
  60. //          обносление существующих позиций НЕ создает новые
  61. //          добавить колличество товаров? product_in_stock
  62. //          при этом сбросить на 0 колличество заказанных товаров? product_ordered
  63.                 mysql_query("UPDATE $tablePrice SET product_price='$f_price' WHERE virtuemart_product_id=$f_id") or DIE(mysql_error());
  64.                 mysql_query("UPDATE $tableProducts SET product_in_stock = '$f_in_stock', product_ordered = '0', published = '1' WHERE virtuemart_product_id=$f_id") or DIE(mysql_error());
  65.             }else{
  66. //          если найден Код но разное Имя
  67.                 $noName =  $f_id."\t".$f_name."\n";
  68.                 $test2 = fwrite($file_write, $noName); // Запись в файл
  69.                 if ($file_write) $diffName = 'product without current Name write to logNoName.<br/>';
  70.                 else echo 'ERROR! cant write in file.';
  71. //                  убирать с публикации товары с НеПравильным названием?
  72.                 mysql_query("update $tableProducts set published = '0' where product_sku = $f_id");
  73.             }
  74.         }else{
  75. //      если Код из БД не найден в файле
  76. //      вывести все что не совпадает, вставить. ВНИМАНИЕ убрать с публикации(может требоваться изменить перед публикацией в магазине)
  77.             $noId = $f_id."\t".$f_name."\n";
  78.             $test3 = fwrite($file_write2, $noId); // Запись в файл
  79.             if ($file_write2) $diffCode = 'product without current ID write to logNoId.<br/>';
  80.             else echo 'ERROR! cant write in file.';
  81.  
  82.             mysql_query("update $tableProducts set published = '0' where product_sku = $f_id");
  83. //      вставляем значения из файла в базу данных(если даные есть НЕ перезаписывает.+добавляет новые)
  84.         }
  85.     }//конец цикла for
  86.     echo "YРА! Цены обновлены! В логах можно найти что было обновлено, а что нет<br>";
  87. }//конец else
  88.  
  89. //Закрытие файла
  90. fclose($file_write);
  91. fclose($file_write2);
  92. fclose($file_write3);
  93. // Закрываем соеденение с БД
  94. mysql_close($connect);
  95. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement