Medik 6 Опубликовано: 8 июля 2010 Рассказать Опубликовано: 8 июля 2010 Сайт 21region.org На сайте был распространен спам. 30 тыс сообщений каждому пользователю. Удалил ПМ-ки прямо в базе данных. Теперь у пользователей в профиле показано что есть новое сообщение, но на самом деле его нету. Как можно обновить данные? Нужен пересчет кол-ва ПМ. Спасибо. Цитата Ссылка на сообщение Поделиться на других сайтах
Nektov 59 Опубликовано: 8 июля 2010 Рассказать Опубликовано: 8 июля 2010 Кеш через админку не пробовали чистить? Цитата Ссылка на сообщение Поделиться на других сайтах
zgr 72 Опубликовано: 8 июля 2010 Рассказать Опубликовано: 8 июля 2010 Эх, ДЛЕ тем и плох, что в нем нет ни одного пересчета, ни одной переменной... Если что-то делаете вручную, то потом всё гонит и глючит, уже замучился у себя - тоже вручную переписывал часть сайта - смерти подобно, сейчас чуток написал функции пересчета, но пока только категории и скоро еще, вероятно, сделаю для тегов костыль, с ПМ не разбирался пока, как разберусь, отпишусь здесь. 1 Цитата Ссылка на сообщение Поделиться на других сайтах
Medik 6 Опубликовано: 8 июля 2010 Рассказать Опубликовано: 8 июля 2010 Автор Кеш через админку не пробовали чистить? Это не поможет. с ПМ не разбирался пока, как разберусь, отпишусь здесь. Спасибо большое, был бы очень благодарен. Цитата Ссылка на сообщение Поделиться на других сайтах
Medik 6 Опубликовано: 9 июля 2010 Рассказать Опубликовано: 9 июля 2010 (изменено) Автор Знакомый программист набросал запрос: <?php if (!$connect = mysql_connect('localhost', 'ЛОГИН', 'ПАРОЛЬ')) { exit ("<div style='color: red'>Не удалось подключиться к MySQL</div>"); } if (!mysql_select_db('БАЗА-ДАННЫХ', $connect)) { exit ("<div style='color: red'>Не удалось выбрать базу данных</div>"); } if ($res = mysql_query("SELECT user_id FROM dle_users", $connect)) { $error = false; while ($row = mysql_fetch_array($res)) { if (!mysql_query("UPDATE dle_users SET pm_unread = (SELECT count(*) FROM dle_pm WHERE pm_read='no' and user={$row['user_id']}) WHERE user_id={$row['user_id']}", $connect)); { $error = true; echo "<div>Не удалось выполнить запрос:<br /><span style='color: red'>UPDATE dle_users SET pm_unread = (SELECT count(*) FROM dle_pm WHERE pm_read='no' and user={$row['user_id']}) WHERE user_id={$row['user_id']}</span></div>\n"; } } if ($error) echo "<div style='color: red'>Были допущены ошибки при обновлении</div>"; else echo "<div style='color: green'>Обновление выполнено успешно</div>"; } else echo "<div style='color: red'>Не удалось получить список пользователей</div>";; ?> В конце вылезет сообщение об ошибке, но сам модуль должен работать. Кто хочет можете дописать правильный вывод сообщений. Изменено 9 июля 2010 пользователем Medik Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.