За последние 24 часа нас посетил 17531 программист и 1716 роботов. Сейчас ищут 1520 программистов ...

Как убрать прогрессию при добавлении в БД

Тема в разделе "PHP для новичков", создана пользователем ugg555, 12 сен 2017.

  1. ugg555

    ugg555 Новичок

    С нами с:
    6 сен 2017
    Сообщения:
    10
    Симпатии:
    0
    Задача такая.
    Есть три таблицы SQL. Нужно просканировать FTP по определенному пути, и БД конкретной таблицы.
    Найти разницу и дописать в БД.

    Странно. Идет Удвоение при каждом проходе foreach.
    То есть записть идет так
    По факту в FTP в Папке 1 - 10 файлов.... в таблиц пишет 10.
    Папке 2 - 15 файлов - в таблицу пишет - 20 (два раза из папки 1)
    Ну в третей, по факту допустим 5 - пишет 30 (3 раза из папки 1)

    Код ниже, пользовательские функции работают нормально...
    Пытался так же обнулять значения в начале первого foreach... такие $sqlArray, $ftpArray и $raznica.

    PHP:
    1. <?php
    2.  
    3. $arrayDirFTP = array(
    4.     "Table1" => "folder/001",
    5.     "Table2" => "folder/002",
    6.     "Table3" => "folder/003",
    7.     );
    8.  
    9. foreach($arrayDirFTP as $table => $papka){
    10.     echo "Таблица: ".$table. "<br>";
    11.  
    12. //Пользовательская функция - Массив файлов в таблице SQL
    13. $sqlArray = scanSQL($table, $sql_host, $sql_user, $sql_pasw, $sql_db); //
    14. // Пользовательская функция - Массив файлов FTP - Сканируем FTP - плучаем $filename
    15. scan_ftp($link, $papka); //На выходе $filename
    16. $ftpArray = $filename; //Массив файлов - FTP - так для себя прировнял к понятной переменной
    17.  
    18. //Находим разницу массивов.... в нем список файлом для добавления в базу
    19. $raznica = array_diff($ftpArray, $sqlArray); //
    20.  
    21. foreach($raznica as $key => $value2){
    22.     $mysqli = new mysqli($sql_host, $sql_user, $sql_pasw, $sql_db );
    23.     //$ берется из ппервого массива $arrayDirFTP
    24.     if ($mysqli->query("INSERT INTO ".$table." (FileName) VALUES ('".$value2."')")) {
    25.         $mysqli->close();
    26.     }
    27.     else {echo "НЕ с работало <br>\n";}
    28.  
    29. }
    30. }
    31. ?>
     
  2. ugg555

    ugg555 Новичок

    С нами с:
    6 сен 2017
    Сообщения:
    10
    Симпатии:
    0
    Ошибку нашел в пользовательской функции - scan_ftp.
    В ней переменная $filename была GLOBAL...