Перейти к публикации

Кол-во ПМ сообщений в базе и в профиле


Рекомендованные сообщения

Сайт 21region.org

На сайте был распространен спам. 30 тыс сообщений каждому пользователю.

Удалил ПМ-ки прямо в базе данных. Теперь у пользователей в профиле показано что есть новое сообщение, но на самом деле его нету.

Как можно обновить данные? Нужен пересчет кол-ва ПМ.

Спасибо.

Ссылка на сообщение
Поделиться на других сайтах

Эх, ДЛЕ тем и плох, что в нем нет ни одного пересчета, ни одной переменной... Если что-то делаете вручную, то потом всё гонит и глючит, уже замучился у себя - тоже вручную переписывал часть сайта - смерти подобно, сейчас чуток написал функции пересчета, но пока только категории и скоро еще, вероятно, сделаю для тегов костыль, с ПМ не разбирался пока, как разберусь, отпишусь здесь.

Ссылка на сообщение
Поделиться на других сайтах

Кеш через админку не пробовали чистить?

Это не поможет.

с ПМ не разбирался пока, как разберусь, отпишусь здесь.

Спасибо большое, был бы очень благодарен.

Ссылка на сообщение
Поделиться на других сайтах

Знакомый программист набросал запрос:

<?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>";;

?>

В конце вылезет сообщение об ошибке, но сам модуль должен работать.

Кто хочет можете дописать правильный вывод сообщений.

Изменено пользователем Medik
Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...