- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году Одноклассники пресекли более 9 млн подозрительных входов в учетные записи
И выявили более 7 млн подозрительных пользователей
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Здравствуйте! Есть обычный варезник на DLE, новостей около 80 к, ранее картинки заливались на сайт и так получилось, что старые новости остались без картинок в папке Uploads (тупо стёрты), а в БД ссылки на них существуют и сервер при каждом обращении пишет в лог ошибки..
Задача: Как пакетно удалить из БД ДЛЕ ссылки на несуществующие файлы (картинки) помесячно, как расположены папки в /uploads/posts/2011-06 например..
Как правильно прописать запрос в БД на удаление?
Посты сами должны остаться...
Заранее спасибо за помошь!
Вытаскиваем все файлы:
//Начинаем проверку всех файлов
while ($array=mysql_fetch_array($query)) {
//Путь к файлу
$url=$array['url'];
//Проверка на существование файла
if (!file_exists ($url)) {
//Если нашли не первый не существующий фаил
if (isset($perviy)) {
$id_del.=','.$array['id'];
} else {
$id_del=$array['id'];
}
}
}
//Если нашли не существующие файлы
if (isset($id_del)) {
if (mysql_query("delete from table_images where id in (".$id_del.")")) {
echo "Все гуд удалилось";
} else {
echo "Ошибка при удалении";
}
} else {
echo "Нет записей для удаления";
}
где table_images - таблица с изображениями
$url=$array['url']; - вытаскиваем с таблици инфу где должен быть сохранен фаил "папка и название файла"
$array['id'] - это ид элемента (файла) если надо удалить из бд его.
В общем все что нужно, это знать структуру таблиц.
Как это применить? Запрос в БД? Или файл РНР с этими данными запустить? Мож я и торможу)))
---------- Добавлено 03.04.2014 в 17:22 ----------
Вытаскиваем все файлы:
где table_images - таблица с изображениями
$url=$array['url']; - вытаскиваем с таблици инфу где должен быть сохранен фаил "папка и название файла"
$array['id'] - это ид элемента (файла) если надо удалить из бд его.
В общем все что нужно, это знать структуру таблиц.
Как применить практически, куда вписать, откуда запустить...??
Это php код.
Я не знаю как выглядит у Вас БД. Поэтому писал названия таблиц и полей от себя. Откройте в phpmyadmin таблицу которая содержит записи с изображениями и сообщите мне инфу или скрин(тогда отредактирую код)
Это php код.
Я не знаю как выглядит у Вас БД. Поэтому писал названия таблиц и полей от себя. Откройте в phpmyadmin таблицу которая содержит записи с изображениями и сообщите мне инфу или скрин(тогда отредактирую код)
Обычный DLE 10 всё стандартно
СКРИН http://shot.qip.ru/00jUa7-6XULWFc05/
---------- Добавлено 03.04.2014 в 17:34 ----------
Меня интересует как применить Ваш код РНР как запустить его..
---------- Добавлено 03.04.2014 в 17:35 ----------
Создал файл, вписал код , запустил, ничё не просходит, сам код отбражается и всё
//Начинаем проверку всех файлов
while ($array=mysql_fetch_array($query)) {
//Путь к файлу
$url=$array['images'];
//Проверка на существование файла
if (!file_exists ($url)) {
//Если нашли не первый не существующий фаил
if (isset($id_del)) {
$id_del.=','.$array['id'];
} else {
$id_del=$array['id'];
}
}
}
//Если нашли не существующие файлы
if (isset($id_del)) {
if (mysql_query("delete from dle_images where id in (".$id_del.")")) {
echo "Все гуд удалилось";
} else {
echo "Ошибка при удалении";
}
} else {
echo "Нет записей для удаления";
}
Готово, незабываем подключиться к самой БД
$ip='localhost';
$user='root';
$password='root';
$namedb='название бд';
$connect=mysql_connect($ip,$user,$password);
mysql_select_db($namedb,$connect);
и на всякий
mysql_query('SET NAMES utf8;',$connect);
учтите что путь $array['images'] - относительно вашего нахождения.
если файлы находятся дальше например: /uploads/posts/ ****
то меняем строку
на
вместо table_images - dle_images :)
Это php код.
Я не знаю как выглядит у Вас БД. Поэтому писал названия таблиц и полей от себя. Откройте в phpmyadmin таблицу которая содержит записи с изображениями и сообщите мне инфу или скрин(тогда отредактирую код)
Спасибо, теперь более менее понятно, как сделаю, сообщу результат..
Вот пример кода - Он берет с бД все изображения проверяет их существование, и в случаи если фаил был не обнаружен - удалит его. "Загружаем в корень - меняем значение БД"
На всякий сделайте бейкап данной таблици - так как если путь до файла не верный "от корня сайта", то он его удалит.
JagdTiger
ага спасибо, совсем заработался )))
---------- Добавлено 03.04.2014 в 15:55 ----------
Сори, еще касяк
на
А если папки с изображениями в таком виде
в параметре