vlusevv Опубликовано 15 Октября 2007 Жалоба Поделиться Опубликовано 15 Октября 2007 Появилась идея создания новых групп пользователей.До этого было несколько групп позьзователей с автоматическим переходом из одной группы в другую при наборе определённого кол-ва сообщений.Создали дополнительные группы, выставили переход.Но пользователи которые по идее должны переходить в новые группы не переходят а остались в старых, хотя у них уже набранно нужное кол-во сообщений. Перетаскивать каждого пользователя нереально их очень имного.Какая была допущена ошибка?Что необходимо для исправления этого недуга? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 Sannis Опубликовано 15 Октября 2007 Жалоба Поделиться Опубликовано 15 Октября 2007 Они автоматом после первого же постинга перейдут. Либо можно пересчитать сообщения у них, если устраивает такой вариант. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 vlusevv Опубликовано 15 Октября 2007 Автор Жалоба Поделиться Опубликовано 15 Октября 2007 (изменено) SannisСпасибо!На счёт набора хотя бы одного сообщения это да, прокатило. Пересчёт сообщений форума, влияет на что либо кроме групп?Ничего плохого от этого не ожидается? Изменено 15 Октября 2007 пользователем vlusevv Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 Sannis Опубликовано 15 Октября 2007 Жалоба Поделиться Опубликовано 15 Октября 2007 Просто если пересчитать то будет актуальное количество сообщений, без учёта удалённых, не всем юзерам понравится что постов убавилось Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 vlusevv Опубликовано 15 Октября 2007 Автор Жалоба Поделиться Опубликовано 15 Октября 2007 Спасибо. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 vlusevv Опубликовано 16 Октября 2007 Автор Жалоба Поделиться Опубликовано 16 Октября 2007 А как бы по другому раскидать пользователей по группам?допустим есть ли SQL запрос? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 Sannis Опубликовано 16 Октября 2007 Жалоба Поделиться Опубликовано 16 Октября 2007 (изменено) 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 группы админов) Изменено 16 Октября 2007 пользователем Sannis Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 vlusevv Опубликовано 16 Октября 2007 Автор Жалоба Поделиться Опубликовано 16 Октября 2007 Спасибо большое!Всё сделал, готово и работает.Единственный минус был, это то что всех юзеров включая админов и модераторов раскидало по группам по колву сообщений) но это легко исправить, легче чем всех юзеров в ручную раскидывать Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 vlusevv Опубликовано 17 Октября 2007 Автор Жалоба Поделиться Опубликовано 17 Октября 2007 (изменено) Расскидка по группам произошла, вот тока допустим в mJournal смена групп так и не произошла.Можно ли изменить группы пользователей в дневниках согласно их группам на форуме. Тобишь как я понимаю надо заменить значения из таблицы ibf_members столбец mgroup в таблице ibf_jmembersКак это можно выразить в SQL запросе? Зарание спасибо. Изменено 17 Октября 2007 пользователем vlusevv Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 Song Опубликовано 18 Октября 2007 Жалоба Поделиться Опубликовано 18 Октября 2007 Подозреваю что также. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 vlusevv Опубликовано 18 Октября 2007 Автор Жалоба Поделиться Опубликовано 18 Октября 2007 В представленные выше запросы, подходят для сортировки пользователей по кол-ву постов.А для ЖЖ надо сменить группы пользователей, согласно из группам на форуме. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 Sannis Опубликовано 18 Октября 2007 Жалоба Поделиться Опубликовано 18 Октября 2007 UPDATE ibf_jmembers, ibf_members SET ibf_jmembers.mgroup=ibf_members.mgroup WHERE ibf_jmembers.id=ibf_members.id; Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 Song Опубликовано 18 Октября 2007 Жалоба Поделиться Опубликовано 18 Октября 2007 такой запрос только от 4.1 а может и позже Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 Sannis Опубликовано 18 Октября 2007 Жалоба Поделиться Опубликовано 18 Октября 2007 Да, с 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.priceWHERE items.id=month.id;На 3.х я так понимаю даже с помошью subquery это не сделать? Попробывал сделать subquery - прокатило, но не знаю, может на 5м это и прокатывает. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 Song Опубликовано 18 Октября 2007 Жалоба Поделиться Опубликовано 18 Октября 2007 На 3-ем сабкверей нет.Тем более сабквери на мускуле только для селекта Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 Sannis Опубликовано 18 Октября 2007 Жалоба Поделиться Опубликовано 18 Октября 2007 На 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 xRay Опубликовано 19 Октября 2007 Жалоба Поделиться Опубликовано 19 Октября 2007 Ну можно по обычному запрос переписать:update ibf_jmembers a SET mgroup = (SELECT b.mgroup FROM ibf_members b where a.id=b.id) Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 Sannis Опубликовано 19 Октября 2007 Жалоба Поделиться Опубликовано 19 Октября 2007 Я так и пробывал, просто не был уверен что прокатит, у самого то 5й стоит. Подумал что в скобках другая область видимости и a.id=b.id не прокатит в 3м. Спасибо Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 vlusevv Опубликовано 19 Октября 2007 Автор Жалоба Поделиться Опубликовано 19 Октября 2007 Сработало!Sannis, ты гений!!!Всё вроде как работает, пользователи форума и ЖЖ обрели одинаковые ID mgroup.Пока проблем не обнаружил.Версия SQL: MYSQL (4.1.20) З.Ы.: Будешь в Саратове с меня пЫво) Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 Song Опубликовано 19 Октября 2007 Жалоба Поделиться Опубликовано 19 Октября 2007 Не знаю, может мой английский настолько плох, но:Цитата(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-ых версиях всё это можно сделать гораздо круче чезез хранимые процедуры, но его ещё не пользовал, поэтому такой опыт ещё не применял. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Вопрос
vlusevv
Появилась идея создания новых групп пользователей.
До этого было несколько групп позьзователей с автоматическим переходом из одной группы в другую при наборе определённого кол-ва сообщений.
Создали дополнительные группы, выставили переход.
Но пользователи которые по идее должны переходить в новые группы не переходят а остались в старых, хотя у них уже набранно нужное кол-во сообщений.
Перетаскивать каждого пользователя нереально их очень имного.
Какая была допущена ошибка?
Что необходимо для исправления этого недуга?
Ссылка на комментарий
Поделиться на других сайтах
19 ответов на этот вопрос
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.