votako

find in db

May 20th, 2014
212
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?
  2. //подключиться к БД
  3. $hostname = "localhost";
  4. $username = "user";
  5. $password = "pwd";
  6. $dbName = "<=";
  7. $tableName = "<=";
  8. $tablePrice = "<=";
  9. $tableProducts = "<=";
  10.  
  11. //подключение к SQL и DB или выдаем ошибку
  12. $connect = mysql_connect($hostname, $username, $password) or die(mysql_error());
  13. mysql_select_db($dbName) or die(mysql_error());
  14. // подключено
  15.  
  16.  
  17. // Открываем файл в режиме записи изменений(+дата чило.месяц.год)
  18. $file_write = fopen("log/logNoName_".date("d.m.y").".txt", "a+");
  19. $file_write2 = fopen("log/logNoId_".date("d.m.y").".txt", "a+");
  20. $file_write3 = fopen("log/logSucsses_".date("d.m.y").".txt", "a+");
  21.  
  22.  
  23. // считываем файл
  24. $file_array = file("file_from_1c.csv");
  25. if(!$file_array){
  26.     echo("Error reading file");
  27. }
  28. else{
  29. // выполняем цикл до конца файла(count();)
  30.     for($i=0; $i<count($file_array); $i++){
  31.    
  32. //      разделяем list(); на столбцы split(); "\t" == табуляцией до конца файла $file_array[$i]
  33. //  приставка f_ для переменных из файла
  34. //  переменная в нормальном виде существует только внутри цикла for(????да)
  35.         list($f_id, $f_name) = split("\t", $file_array[$i]);
  36.        
  37. //      в переменную идет строка из sql
  38.         $res = mysql_query("SELECT product_idб product_name FROM $tableName WHERE product_id='$f_id'");
  39. //      разбивает целую строку на необходимые(существующие в базе данных) столбцы
  40. //      присваиваем данные переменным
  41.         while($row = mysql_fetch_array($res)){
  42.             $db_id = $row['product_id'];
  43.             $db_name=$row['product_name'];
  44.         }
  45.        
  46. //      проверка кода БД и файла
  47.         if($db_id==$f_id){
  48. //          проверка наименования
  49.             if($db_name==$f_name){
  50. //          записываем все что обновили в файл.
  51.                 $eah = $db_id."\t".$db_name." == ".$f_id."\t".$f_name."\n";
  52.                 $test1 = fwrite($file_write3, $eah); // Запись в файл
  53.                 if ($file_write3) $allCurrent = 'update price and write sucsses ID+NAME to logSucsses.<br/>';
  54.                 else echo 'ERROR! cant write in file.';
  55.             }else{
  56. //          если найден Код но разное Имя
  57.                 $noName =  "name-> ".$db_id."\t". $db_name. "!=" .$f_id."\t ".$f_name."\n";
  58.                 $test2 = fwrite($file_write, $noName); // Запись в файл
  59.                 if ($file_write) $diffName = 'product without current Name write to logNoName.<br/>';
  60.                 else echo 'ERROR! cant write in file.';
  61.             }
  62.         }else{
  63. //      если Код из фалйа не найден в ДБ
  64.             $noId = $f_id."\t".$f_name."\t нет в базе данных"."\n";
  65.             $test3 = fwrite($file_write2, $noId); // Запись в файл
  66.             if ($file_write2) $diffCode = 'product without current ID write to logNoId.<br/>';
  67.             else echo 'ERROR! cant write in file.';
  68.         }
  69.     }//конец цикла for
  70.     echo "YРА! Цены обновлены! В логах можно найти что было обновлено, а что нет<br>";
  71. }//конец else
  72.  
  73. //Закрытие файла
  74. fclose($file_write);
  75. fclose($file_write2);
  76. fclose($file_write3);
  77. // Закрываем соеденение с БД
  78. mysql_close($connect);
  79. ?>
Advertisement
Add Comment
Please, Sign In to add comment