Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP: базы данных
Войти
Регистрация
Восстановить пароль
 
HooLIGUN
0 / 0 / 0
Регистрация: 01.02.2013
Сообщений: 41
1

Разница в списке файлов в БД и в файловой системе

08.01.2017, 17:36. Просмотров 254. Ответов 9
Метки нет (Все метки)

Здравствуйте. Помогите пожалуйста с реализацией небольшего кода.
Суть в том, что нужно получить названия файлов из директории, затем найти эти названия файлов в БД и вывести их на страницу:
Название файла - Есть в базе \ Название файла - Нет в базе

Файлов очень много, в ручную найти файлы, которых нет в базе - нереально.
0
Миниатюры
Разница в списке файлов в БД и в файловой системе   Разница в списке файлов в БД и в файловой системе  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.01.2017, 17:36
Ответы с готовыми решениями:

Сохранение и извлечение изображений в файловой системе с использованием БД MySQL
Любезные, дайте пожалуйста, если у кого есть, ссылку(ки) на хранение,...

хранение файлов в БД или в файловой системе?!
Необходимо хранить огромное количество офисных документов. Что лучше, хранение...

Хранение файлов в БД или в файловой системе?!
Необходимо хранить огромное количество офисных документов. Что лучше, хранение...

Свойвства файлов и папок в файловой системе
Добрый день! прошу помочь мне реализовать функцию stat() в файловой системе...

Хранение файлов в файловой системе сервера jsf
Пишу приложение на jsf. Можно ли как-нибудь сохранять пользовательские файлы...

9
Jewbacabra
Эксперт PHP
3441 / 2862 / 1289
Регистрация: 24.04.2014
Сообщений: 8,685
08.01.2017, 17:52 2
PHP
1
2
3
4
5
$files = array_filter(scandir($directory_name), function($name) { return !in_array($name, ['.', '..']); });
$files = implode("','", $files);
$sql = "SELECT `file_name` FROM `table_name` WHERE `file_name` IN ('$files')";
// Далее выполнить данный запрос используя любимый драйвер
// и вывести результат
Если нужно найти файлы, которых нет в базе, то можно воспользоваться функцией array_diff
1
HooLIGUN
0 / 0 / 0
Регистрация: 01.02.2013
Сообщений: 41
08.01.2017, 18:21  [ТС] 3
Спасибо!

Добавлено через 19 минут
Цитата Сообщение от Jewbacabra Посмотреть сообщение
PHP
1
2
3
4
5
$files = array_filter(scandir($directory_name), function($name) { return !in_array($name, ['.', '..']); });
$files = implode("','", $files);
$sql = "SELECT `file_name` FROM `table_name` WHERE `file_name` NOT IN ('$files')";
// Далее выполнить данный запрос используя любимый драйвер
// и вывести результат
Этот код вывел немного не то что нужно. Он показал каких файлов нет на сервере, но есть в базе. А нужно наоборот - Какие есть на сервере, но нет в базе
0
Madrid
4 / 45 / 2
Регистрация: 26.12.2009
Сообщений: 382
08.01.2017, 19:22 4
Цитата Сообщение от HooLIGUN Посмотреть сообщение
А нужно наоборот
array_diff...
0
HooLIGUN
0 / 0 / 0
Регистрация: 01.02.2013
Сообщений: 41
08.01.2017, 19:31  [ТС] 5
Цитата Сообщение от Madrid Посмотреть сообщение
array_diff...
С массивами не очень дружу..
0
fanatikus
1085 / 1079 / 506
Регистрация: 17.11.2012
Сообщений: 4,777
08.01.2017, 19:37 6
PHP
1
$arr_result = array_diff($arr_in_directory,$arr_in_dbase);
0
HooLIGUN
0 / 0 / 0
Регистрация: 01.02.2013
Сообщений: 41
08.01.2017, 20:09  [ТС] 7
Цитата Сообщение от fanatikus Посмотреть сообщение
PHP
1
$arr_result = array_diff($arr_in_directory,$arr_in_dbase);
Как бы эти 2 переменные получить? Данный пример я видел в мануале по ссылке выше.
0
fanatikus
1085 / 1079 / 506
Регистрация: 17.11.2012
Сообщений: 4,777
08.01.2017, 20:34 8
Цитата Сообщение от HooLIGUN Посмотреть сообщение
Как бы эти 2 переменные получить?
1
Цитата Сообщение от Jewbacabra Посмотреть сообщение
$files = array_filter(scandir($directory_name), function($name) { return !in_array($name, ['.', '..']); });
2
Цитата Сообщение от HooLIGUN Посмотреть сообщение
$sql = "SELECT `file_name` FROM `table_name`
Добавлено через 4 минуты
Цитата Сообщение от HooLIGUN Посмотреть сообщение
И с массивами еще не разобрался.
самое время начать
0
HooLIGUN
0 / 0 / 0
Регистрация: 01.02.2013
Сообщений: 41
20.11.2017, 01:41  [ТС] 9
Прошел почти год, но тема всё еще актуальна. Прошу помочь разобраться с конкретным примером...
Как вывести какие файлы есть на сервере, но нет в базе данных?
Кончается место на сервере, нужно почистить остатки..
0
HooLIGUN
0 / 0 / 0
Регистрация: 01.02.2013
Сообщений: 41
14.12.2017, 14:47  [ТС] 10
Не получается данные из базы придать в массив для сравнения.
0
14.12.2017, 14:47
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.12.2017, 14:47

В файловой системе каталог файлов организовать как линейный список
Вот такое задание : в файловой системе каталог файлов организован как линейный...

Скрипт по файловой системе
Люди может кто знает как реализовать скрипт. Необходимо что бы мне выводило...

Доступ к файловой системе
Доброго времени суток. Существует следующая ситуация. Есть ПК под управлением...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru