Как посчитать результаты с определёнными значениями?

Serguitar

Новичок->продвинутый
Как посчитать результаты с определёнными значениями?

Возникла ситуация:
на странице содержится информация, отбираемая по десяти критериям (пока, потом может будет больше). Необходимо также знать колличество соответствующих данному критерию параметров(строк таблицы).
Данные о том, по какому критерию отбирается выводимая информация, содержаться опять же в таблице.
Вопрос: необходимо ли каждый раз обращаться к базе с запросом $query=mysql_query("SELECT * FROM TABLE WHERE kritery=a(или b, или с...)");, или можно каким-то образом посчитать сами результаты?
То есть сколько у меня mysql_result($query, $i, 'kritery')='a'(или b, или с...) и выводить в том или ином месте страницы результаты, соответствующие данному условию?
Или как-нибудь ещё?
 

-=KPOT=-

Новичок
я так понял тебе нужно количество строк удовлетворяющих критерию?
если да то:
select count(*) from table where kritery in (a,b,c,..y) group by kritery;
 

Serguitar

Новичок->продвинутый
-=KPOT=-
Не только колличество строк, но и сами результаты запроса.
Мне не хочется делать десятикратный запрос к базе, хочу сделать один.
Твой вариант интересен. А как потом выводить эти самые сгруппированные по критерию данные?
И что значит вот это?
 

-=KPOT=-

Новичок
поторопился мой вариант не верен :mad:

это значит что выбираются данные у которых kriteriy =a,=b,=с итд
 

-=KPOT=-

Новичок
вот он нормально работает но если у нас нет строк где kritery=a он 0 не выводит

-~{}~ 23.12.04 18:07:

хотя если вот так сделать

select concat(kritery,'#',count(*)) from table where kritery in (a,b,c,..y) group by kritery;

то результат будет

b#12
c#1
e#2
...

здесь видно для kritery=a строки нет следовательно для него 0, а такой анализ уже не сложно сделать

-~{}~ 23.12.04 18:13:

если надо еще и результаты, то можно и в данном запросе но IMHO лучше вторым запросом

Автор оригинала: Serguitar
А как потом выводить эти самые сгруппированные по критерию данные?
как и любой результат можно по разному
я обычно так
PHP:
while ($stroka=mysql_fetch_row($result))
{
  echo $stroka[0];
}
 

Фанат

oncle terrible
Команда форума
слушайте, стукните, кто-нибудь, уже этого крота лопатой, а?

-~{}~ 23.12.04 18:09:

Serguitar
тебе нужен group by, только без кротового бреда

mysql_result - неправильная функция, не нужно ее использовать.
 
Сверху