Перейти к контенту
  • 0

Реорганизация групп пользователей


vlusevv

Вопрос

Появилась идея создания новых групп пользователей.

До этого было несколько групп позьзователей с автоматическим переходом из одной группы в другую при наборе определённого кол-ва сообщений.

Создали дополнительные группы, выставили переход.

Но пользователи которые по идее должны переходить в новые группы не переходят а остались в старых, хотя у них уже набранно нужное кол-во сообщений.

 

Перетаскивать каждого пользователя нереально их очень имного.

Какая была допущена ошибка?

Что необходимо для исправления этого недуга?

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

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

  • 0
Они автоматом после первого же постинга перейдут. Либо можно пересчитать сообщения у них, если устраивает такой вариант.
Ссылка на комментарий
Поделиться на других сайтах

  • 0

Sannis

Спасибо!

На счёт набора хотя бы одного сообщения это да, прокатило.

 

Пересчёт сообщений форума, влияет на что либо кроме групп?

Ничего плохого от этого не ожидается?

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

  • 0
Просто если пересчитать то будет актуальное количество сообщений, без учёта удалённых, не всем юзерам понравится что постов убавилось :D
Ссылка на комментарий
Поделиться на других сайтах

  • 0

UPDATE ibf_members SET mgroup=номер_группы WHERE условие

 

Пример:

 

UPDATE ibf_members SET mgroup=7 WHERE posts BETWEEN 1000 AND 3000

 

Для тех кому лень искть ответ в дугой теме):

Чтобы не перекидывать админов:

UPDATE ibf_members SET mgroup=7 WHERE mgroup<>4 AND (posts BETWEEN 1000 AND 3000)

(4 - id группы админов)

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

  • 0

Спасибо большое!

Всё сделал, готово и работает.

Единственный минус был, это то что всех юзеров включая админов и модераторов раскидало по группам по колву сообщений) но это легко исправить, легче чем всех юзеров в ручную раскидывать :D

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

  • 0

Расскидка по группам произошла, вот тока допустим в mJournal смена групп так и не произошла.

Можно ли изменить группы пользователей в дневниках согласно их группам на форуме.

 

Тобишь как я понимаю надо заменить значения из таблицы ibf_members столбец mgroup в таблице ibf_jmembers

Как это можно выразить в SQL запросе?

 

Зарание спасибо.

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

  • 0

В представленные выше запросы, подходят для сортировки пользователей по кол-ву постов.

А для ЖЖ надо сменить группы пользователей, согласно из группам на форуме.

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

  • 0
UPDATE ibf_jmembers, ibf_members SET ibf_jmembers.mgroup=ibf_members.mgroup WHERE ibf_jmembers.id=ibf_members.id;

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

  • 0

Да, с 4.х:

Starting with MySQL 4.0.4, you can also perform UPDATE operations covering multiple tables. However, you cannot use ORDER BY or LIMIT with a multiple-table UPDATE. The table_references clause lists the tables involved in the join. Its syntax is described in Section 13.2.7.1, “JOIN Syntax”. Here is an example:

UPDATE items,month SET items.price=month.price

WHERE items.id=month.id;

На 3.х я так понимаю даже с помошью subquery это не сделать? Попробывал сделать subquery - прокатило, но не знаю, может на 5м это и прокатывает.

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

  • 0

На 3-ем сабкверей нет.

Тем более сабквери на мускуле только для селекта

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

  • 0
На 3-ем сабкверей нет.

Т.е. никак, только скрипт если написать?

 

Тем более сабквери на мускуле только для селекта

Не знаю, может мой английский настолько плох, но:

One restriction is that a subquery's outer statement must be one of: SELECT, INSERT, UPDATE, DELETE, SET, or DO. Another restriction is that currently you cannot modify a table and select from the same table in a subquery.
Ссылка на комментарий
Поделиться на других сайтах

  • 0

Я так и пробывал, просто не был уверен что прокатит, у самого то 5й стоит. Подумал что в скобках другая область видимости и a.id=b.id не прокатит в 3м.

 

Спасибо :D

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

  • 0

Сработало!

Sannis, ты гений!!!

Всё вроде как работает, пользователи форума и ЖЖ обрели одинаковые ID mgroup.

Пока проблем не обнаружил.

Версия SQL: MYSQL (4.1.20)

 

 

З.Ы.: Будешь в Саратове с меня пЫво)

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

  • 0
Не знаю, может мой английский настолько плох, но:

Цитата(http://dev.mysql.com/doc/refman/4.1/en/subqueries.html)

One restriction is that a subquery's outer statement must be one of: SELECT, INSERT, UPDATE, DELETE, SET, or DO. Another restriction is that currently you cannot modify a table and select from the same table in a subquery.

Я там забыл версию указать.

3.х, 4.0 - нет сабкверей

4.1 - только для селекта

4.3+ всё хорошо

 

Поясню почему 4.3. У меня когда-то не получалось в 4.1

Я подумал, что не работает в 4.1

Позже в 4.3 всё работало.

Раз у автора выше в 4.1 всё работает, значит глюки были у меня.

 

 

Добавлено:

А вообще ХЗ, я сл сложными запросами только в Оракле работаю. Не доверяю я мускулу апдейты со связками.

А в IPB самое безопасное и самое полезное для мозгов - написать скрипт.

 

Я даже учитывая, новые возможности 4.1+ никогда их не использую в коде (использую только в ручных запросах). Не делаю многотабличные апдейты, не делаю апдейты с сабселектами. Всё делаю на стороне клиента через дополнительную обработку. Сами знаете анекдот про монашку. Это делает мой форум "кроссмускульным". Как хотят делать все остальные - это их лично дело.

В 5-ых версиях всё это можно сделать гораздо круче чезез хранимые процедуры, но его ещё не пользовал, поэтому такой опыт ещё не применял.

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

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

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

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

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

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.