Intellect Board — cистема управления сайтомПостроение сайта на основе форума |
Intellect Board — cистема управления сайтом » Техническая поддержка версии 2.22 » Как посчитать количество участников в группе? |
<<Назад Вперед>> | Модераторы: aerograf, wsx | Печать |
Dearheart
Почетный участник
Откуда: Нижний Новгород Всего сообщений: 130 Рейтинг пользователя: 4 Ссылка Дата регистрации на форуме: 27 дек. 2007 |
Появилась необходимость в табличке группы вывести количество участников для каждой группы (аналогично, как это делается в админке). Я попытался изменить исходный SQL запрос, но ничего не вышло. Получается, что если начинаешь считать количество участников, то запрос неправильно возвращает членство в группе, и предлагает выйти из той группы, в которой меня небыло Тоесть ничего не получается... Подскажите пожалуйста, как этот запрос должен выглядеть? Может быть возможно сделать два запроса, один работает как и раньше, а другой только считает количество участников... Но как тогда результаты двух запросов вставить в одну таблицу? ---
Форум для родителей детей с ВПС: http://forum.dearheart.ru |
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик Откуда: Москва Всего сообщений: 3299 Рейтинг пользователя: 70 Ссылка Дата регистрации на форуме: 29 сен. 2001 |
Вообще, объединение следует проводить уже после выполнения самих запросов средствами PHP. А запрос такой: $sql = "SELECT g_id, COUNT(g_id) FROM prefix_UserGroup GROUP BY g_id"... (За счет точности наименования полей не ручаюсь, т.к. пишу с работы, где кода под рукой нет.) Выполняешь этот запрос до основного, сохраяешь в хеш вида $gcount[группа]=число, а в цикле, где извлекаются группы с учетом участия добавляешь $имя_переменной['gcount']=$gcount[$имя_переменной['g_id']]; ---
Спорить со мной по поводу того, что в IntB будет, а чего нет -- бесполезно! |
Dearheart
Почетный участник
Откуда: Нижний Новгород Всего сообщений: 130 Рейтинг пользователя: 4 Ссылка Дата регистрации на форуме: 27 дек. 2007 |
Большое спасибо - все работает Если кому понадобится такая фича, то рассказываю как сделал: Дополнительный запрос, который выполняется до основного выглядит так: $sql = "SELECT g.*, COUNT(gm.uid) AS gm_count FROM ".$GLOBALS['DBprefix']."UGroup g ". "LEFT JOIN ".$GLOBALS['DBprefix']."UGroupMember gm ON (gm.gid=g.g_id) GROUP BY g.g_id,g.g_title,g.g_setlevel,g.g_ljoin,g.g_lview,g.g_lautojoin,g.g_descr,g.g_allowquit"; $resd =&db_query($sql,$link); Затем заносим результаты запроса в массив $gcount, для этого выполняем цикл: while ($qdata=&db_fetch_array($resd)) { $gcount[$qdata['g_id']]=$qdata['gm_count']; } Далее следует основной запрос, там нет изменений, затем в основном цикле извлечения результатов запроса добавляем такую строку: $gdata['gcount']=$gcount[$gdata['g_id']]; Это в основной массив добавляется количество участников для каждой группы. Это всё, остаётся только в функции построения таблицы групп для HTML добавить такую строку <td align=center><?=$gdata['gcount'];?> чтобы построить четвёртую колону (и не забыть указать в шапке таблицы, что колонок будет 4) . Всё работает - можно это дополнение добавить в следующий релиз ---
Форум для родителей детей с ВПС: http://forum.dearheart.ru |
Gram
Администратор
Откуда: Нижний Новгород Всего сообщений: 1011 Рейтинг пользователя: 38 Ссылка Дата регистрации на форуме: 23 июля 2003 |
Dearheart написал: Всё работает - можно это дополнение добавить в следующий релиз Добавил |
Dearheart
Почетный участник
Откуда: Нижний Новгород Всего сообщений: 130 Рейтинг пользователя: 4 Ссылка Дата регистрации на форуме: 27 дек. 2007 |
Gram, есть ещё одна полезная фишка - это дополнение галерей возможностью фотохостинга, что позволит размещать фотки из нашей галереи на других форумах, которые размещение фоток не поддерживают. Дополнение небольшое, поэтому его тоже можно вставить в релиз. Текст этого дополнения на форуме выкладывать нельзя, поскольку форум при этом ломается, так что выкладываю текст доработки в приаттаченном файле, может кому пригодится. Прикрепленный файл (dop.txt, 1550 байт, скачан: 1324 раза) ---
Форум для родителей детей с ВПС: http://forum.dearheart.ru |
Gram
Администратор
Откуда: Нижний Новгород Всего сообщений: 1011 Рейтинг пользователя: 38 Ссылка Дата регистрации на форуме: 23 июля 2003 |
Dearheart, дополнение конечно добавлю как буду переделывать фотогалерею. А ошибку исправим скоро. |
<<Назад Вперед>> | Модераторы: aerograf, wsx | Печать |
Intellect Board — cистема управления сайтом » Техническая поддержка версии 2.22 » Как посчитать количество участников в группе? |
1 посетитель просмотрел эту тему за последние 10 минут |
В том числе: 1 гость, 0 скрытых пользователей |
Последние | |
Ограничение доступа не отображаются разделы Архив версий Установка стиля на Intellect Board 2.22 Завершилась работа над новой версией 3.00 |
Самые активные 5 тем | |