Здравствуйте. Помогите с написанием кода. Написал код Чтобы он сверял с бд Если файл не существует в бд он удаляется с хостинга. а он удаляет все файлы с папки. Помогите поправить. Только учусь. - вопрос №5321428

// Параметры подключения к базе данных $servername = «localhost»; $username = «username»; $password = «password»; $dbname = «username»; $conn = new mysqli($servername, $username, $password, $dbname); // Проверка подключения к базе данных if ($conn->connect_error) { die(«Ошибка подключения к базе данных: ». $conn->connect_error); } // Выполнение запроса к базе данных для получения списка всех файлов $sql = «SELECT img_images FROM img_ads»; $result = $conn->query($sql); // Получение списка файлов в папке $imagesFolder = «media/images/»; $files = glob($imagesFolder. "*.webp"); // Проход по каждому файлу в папке foreach ($files as $file) { // Проверка, существует ли файл в базе данных $filename = basename($file); $fileInDb = false; if ($result->num_rows > 0) { while ($row = $result->fetch_assoc()) { if ($row['ads_images'] == $filename) { $fileInDb = true; break; } } } // Удаление файла с хостинга, если он не существует в базе данных if (!$fileInDb) { if (unlink($file)) { echo «Файл удален: ». $file. "
"; // Запись результатов в файл log.txt file_put_contents(«log/log.txt», «Удален файл: ». $file. PHP_EOL, FILE_APPEND); } else { echo «Не удалось удалить файл: ». $file. "
"; // Запись результатов в файл log.txt file_put_contents(«log/log.txt», «Не удалось удалить файл: ». $file. PHP_EOL, FILE_APPEND); } } // Сброс указателя результатов запроса перед новой итерацией $result->data_seek(0); } // Закрытие подключения к базе данных $conn->close();
12.11.23
1 ответ

Ответы

Эксперт месяца
// Параметры подключения к базе данных
$servername = «localhost»;
$username = «username»;
$password = «password»;
$dbname = «username»;

$conn = new mysqli($servername, $username, $password, $dbname);

// Проверка подключения к базе данных
if ($conn->connect_error) {
die(«Ошибка подключения к базе данных: ». $conn->connect_error);
}

// Выполнение запроса к базе данных для получения списка всех файлов
$sql = «SELECT img_images FROM img_ads»;
$result = $conn->query($sql);

// Получение списка файлов в папке
$imagesFolder = «media/images/»;
$files = glob($imagesFolder. "*.webp");

// Проход по каждому файлу в папке
foreach ($files as $file) {
// Проверка, существует ли файл в базе данных
$filename = basename($file);
$fileInDb = false;

if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
if ($row['img_images'] == $filename) {
$fileInDb = true;
break;
}
}
}

// Удаление файла с хостинга, если он не существует в базе данных
if (!$fileInDb) {
if (unlink($file)) {
echo «Файл удален: ». $file. "\n";
// Запись результатов в файл log.txt
file_put_contents(«log/log.txt», «Удален файл: ». $file. PHP_EOL, FILE_APPEND);
} else {
echo «Не удалось удалить файл: ». $file. "\n";
// Запись результатов в файл log.txt
file_put_contents(«log/log.txt», «Не удалось удалить файл: ». $file. PHP_EOL, FILE_APPEND);
}
}

// Сброс указателя результатов запроса перед новой итерацией
$result->data_seek(0);
}

// Закрытие подключения к базе данных
$conn->close();
12.11.23

Alexander

Читать ответы

Дима

Читать ответы
Посмотреть всех экспертов из раздела Технологии > PHP
Пользуйтесь нашим приложением Доступно на Google Play Загрузите в App Store