Бормотухи.НЕТ

Бормотухи.НЕТ (http://www.bormotuhi.net/index.php)
-   Инструкции по vBulletin (http://www.bormotuhi.net/forumdisplay.php?f=102)
-   -   Решение задач/проблем при помощи SQL-запросов (http://www.bormotuhi.net/showthread.php?t=12271)

Slavok47 19.04.2011 07:04

Решение задач/проблем при помощи SQL-запросов
 
Существуют некоторые задачи а возможно и не доработки (например проблема с подписью) которые очень просто решить при помощи SQL запроса, в основном это настройки которые не применяются для тех объектов которые были созданы до изменения этих настроек.
Например:
1) Проблема с подписью, если пользователь не сделал себе подпись, то этот функция имеет отключенный статус, и создание сообщений делается с опцией в отключенном состоянии, а когда пользователь делает себе подпись она не включается в сообщениях написанных до создания подписи, можно конечно редактировать каждое, но если их 1000?
в этом случае используем обычный запрос через phpMyAdmin или же прямо из админку (если есть разрешение на это), если же нету то его можно включить в config.php,
PHP код:

$config['SpecialUsers']['canrunqueries'] = '1'

это не безопасно, и тогда можно будет делать автоматические запросы, по категориям
PHP код:

UPDATE post SET showsignature='1' 

где post - таблица, будьте внимательны, если у вас таблицы с префиксом, его обязательно нужно добавить
данный запрос обновит все строки в поле showsignature в таблице post для всех пользователей, а можно это сделать и для конкретного пользователя, тогда запрос будет выглядеть так:
PHP код:

UPDATE post SET showsignature='1' WHERE username='Admin' 

либо по ID (что более недежней) userid='1'
Все это вступление, далее будут просто запросы, это для тех кто вобще ни как не дружит с SQL и PHP, хотя таким я бы не рекомендовал что то делать с базой))

2) Для включения у всех опции "Разрешить уведомления о новых ЛС всплывающим окном"
PHP код:

UPDATE user SET pmpopup='1' 

3) Массовое удаление "мягко" удаленных тем/постов
данная операция пройдет в 3 этапа:
а) Удаление постов
б) Удаление тем
в) Удаление меток

И так, удаляем все посты которые имеют статус "мягко-удаленные", и все остальные посты которые находятся в темах которые "мягко-удалены":
PHP код:

DELETE from vb_post WHERE postid IN (SELECT primaryid from vb_deletionlog where type='post') OR threadid IN (SELECT primaryid from vb_deletionlog where type='thread'

Удаляем сами темы:
PHP код:

DELETE from vb_thread WHERE threadid IN (SELECT primaryid from vb_deletionlog where type='thread'

Удаляем метки:
PHP код:

DELETE from vb_deletionlog WHERE type='post' OR type='thread' 

В примере использован префикс vb_


Будьте осторожны при работе с БД и запросами, делайте бэкапы перед какими то работами


Текущее время: 07:43. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2025, vBulletin Solutions, Inc. Перевод: zCarot

Время генерации страницы 0.04219 секунды с 8 запросами