title
Description
Body
Запрос : SELECT `user`,COUNT(*) FROM `posts` GROUP BY `user`;
получаем ТОЛЬКО пользователя и количество его постов.
Как можно подсчитать, количество сгруппированных значении?
Кроме как mysql_num_rows() ничего нем придумал
Неактивен
Нужно подсчитать количество уникальных users?
В конкретно тобой приведенном SQL, COUNT и так будет работать корректно. А вот если добавшь LIMIT, тогда да, вполне себе SQL_CALC_FOUND_ROWS
Неактивен
Gemorroj написал:
Нужно подсчитать количество уникальных users?
В конкретно тобой приведенном SQL, COUNT и так будет работать корректно. А вот если добавшь LIMIT, тогда да, вполне себе SQL_CALC_FOUND_ROWS
коунт Возвратит количество сообщений для каждого пользователя, но никак не количество самих юзеров
Неактивен
Morgan написал:
получаем ТОЛЬКО пользователя и количество его постов.
имелось ввиду, что тут COUNT будет вполне корректно работать.
Morgan написал:
Как можно подсчитать, количество сгруппированных значении?
чем не устраивает mysql_num_rows?
просто непонятно, зачем делать GROUP BY, если тебе нужно подсчитать количество пользователей?
|
|
не ?
Неактивен
Morgan, смотри вот например я писал форум.
У меня был раздел и подраздел. Мне нужно было узнать список подразделов id #1 т.е. первого номера. Я сделал так:
создаю раздел.
@mysql_query(INSERT INTO `forum` (type, name) VALUES("s", "NUMBER ONE");
Создан раздел с именем намбер ван с идом 1.
Теперь создаём подраздел.
Естествено если мы не укажем куда он создаётся - то он появится во всех разделах.
Теперь как уже создали раздел выводим список.
$q = mysql_query('SELECT id, name FROM `forum` WHERE `type`="s"');
while ($s = mysql_fetch_object($q) {
echo '<a href="index.php?s=' . $s->id . '">' . $s->name . '</a><br/>
}
это мы вывели имена разделов и их номер от 1 до доху..
Теперь мы переходим по адресу index.php?s=1 т.к. номер 1.
Там создаём подраздел.
@mysql_query(INSERT INTO `forum` (type, sid, name) VALUES("subs", "1", "NUMBER ONE subs");
мы создали.
Теперь достаём.
$q = mysql_query('SELECT id, name, sid FROM `forum` WHERE `type`="subs" AND `sid`="' . $s . '"');
while ($subs = mysql_fetch_object($q) {
echo '<a href="index.php?s=' . $subs->id . '">' . $subs->name . '</a><br/>
}
как видишь тип ссылки - subs что означает подраздел. И выражение sid - куда мы передали переменную s с джет запроса index.php?s=1 - мы получили имена подразделов раздела номер 1.
выше вторым, был написан инсерт запрос где мы присвоили имя NUMBER ONE subs разделу номер 1. И вот я о том и говорю, точно также можно вывести количество сообщений юзера и подсчитать их например select count(*) from users where login=$lgn and sid=1 то есть к какому sid`у относятся сообщения юзера. Короче типа представь что я написал: раздел - это логин юзера, а подраздел - это его кол-во сообщений или данных. Считай количество имено тут: $q = mysql_query('SELECT id, name, sid FROM `forum` WHERE `type`="subs" AND `sid`="' . $s . '" ORDER BY id DESC');.
ORDER BY id DESC - НЕ ЗАБУДЬ в конце.
Неактивен
Gemorroj, работает.
Теперь вопрос другой.
Есть таблица, личные сообщения. При отправке записывается айди текущего ю3ера и кому он шлет сообщение.
Мне нужно подсчитать количество уникальных пользователей, с которыми текущий пользователь имел контакт, слал, либо принимал сообщения.
То есть, Условие должно быть WHERE user1 = 1 OR user2 = 1;
как это сделать?
Добавлено спустя 3 минуты 40 секунд:
2010 написал:
Morgan, смотри вот например я писал форум.
У меня был раздел и подраздел. Мне нужно было узнать список подразделов id #1 т.е. первого номера. Я сделал так:
создаю раздел.
@mysql_query(INSERT INTO `forum` (type, name) VALUES("s", "NUMBER ONE");
Создан раздел с именем намбер ван с идом 1.
Теперь создаём подраздел.
Естествено если мы не укажем куда он создаётся - то он появится во всех разделах.
Теперь как уже создали раздел выводим список.
$q = mysql_query('SELECT id, name FROM `forum` WHERE `type`="s"');
while ($s = mysql_fetch_object($q) {
echo '<a href="index.php?s=' . $s->id . '">' . $s->name . '</a><br/>
}
это мы вывели имена разделов и их номер от 1 до доху..
Теперь мы переходим по адресу index.php?s=1 т.к. номер 1.
Там создаём подраздел.
@mysql_query(INSERT INTO `forum` (type, sid, name) VALUES("subs", "1", "NUMBER ONE subs");
мы создали.
Теперь достаём.
$q = mysql_query('SELECT id, name, sid FROM `forum` WHERE `type`="subs" AND `sid`="' . $s . '"');
while ($subs = mysql_fetch_object($q) {
echo '<a href="index.php?s=' . $subs->id . '">' . $subs->name . '</a><br/>
}
как видишь тип ссылки - subs что означает подраздел. И выражение sid - куда мы передали переменную s с джет запроса index.php?s=1 - мы получили имена подразделов раздела номер 1.
выше вторым, был написан инсерт запрос где мы присвоили имя NUMBER ONE subs разделу номер 1. И вот я о том и говорю, точно также можно вывести количество сообщений юзера и подсчитать их например select count(*) from users where login=$lgn and sid=1 то есть к какому sid`у относятся сообщения юзера. Короче типа представь что я написал: раздел - это логин юзера, а подраздел - это его кол-во сообщений или данных. Считай количество имено тут: $q = mysql_query('SELECT id, name, sid FROM `forum` WHERE `type`="subs" AND `sid`="' . $s . '" ORDER BY id DESC');.
ORDER BY id DESC - НЕ ЗАБУДЬ в конце.
ты что мне предлагаешь? Подсчитать количество без COUNT?
Отредактировано Morgan (2010.03.11 14:14)
Неактивен
Морган, ну просто берёшь отправляешь сообщение. При отправке работает инсерт запрос. Ты записываешь логин юзера в определённый столб в определённый ник когда он его примит или отправит. На второй раз если этот логин существует - записи не будет т.е. специально код пишешь. Далее выводишь список тех с кем имел контакт. Может не понятно объяснил но тебе надо приписать чужой ник отправителя или кому отправил что бы этот ник записался на твоё имя и потом вывел. или ты Код не знаешь?
Неактивен
|
|
Вместо 1 ID пользователя, для которого считаем данные.
Неактивен