|
|
|
| Есть таблица TAB1 в ней столбец id, put и text
put содержит числа от 1 до 7 для разного id(т-е id=1 и put=2)
Надо написать запрос-который подсчитывает кол-во id где put=1 put=2 put=3 и тд
Запрос получается такой
SELECT count(`id`) FROM TAB1 where put=1... //put=2,put=3 и тд
Если выводить для каждого put -получится что надо делать 7 запросов
Можно как-то уменьшить запрос решив задачу?
Пока только такой вариант вижу:
for($i=1;$i<=7;$i++){
$rez=mysql_query("SELECT count(`id`) FROM TAB1 where put='$i'",$link);
$col=mysql_fetch_array($rez);
echo $col[0];
}
|
Но это как видно неразумно и много жрет ресурсов.
Хочу чтоб каждому значению put присваивалось имя т-е значению put=1 присвоилось имя-Картинки получая результат вида
Картинки-9
Программы-3 | |
|
|
|
|
|
|
|
для: oli
(14.07.2008 в 01:01)
| | SELECT `put`, COUNT(*) AS `q` FROM `TAB1` GROUP BY `put` ASC
P.S. Ну и название - "put"...:) | |
|
|
|
|
|
|
|
для: BinLaden
(14.07.2008 в 01:07)
| | Почему то не работает запрос!
Делаю так
<?
$put2 = array(1=>"Картинки", "Программы", "Видео"...);
$rez=mysql_query("SELECT `put`, COUNT(*) AS `q` FROM `TAB1` GROUP BY `put` ASC",$link);
$rezcol=mysql_fetch_array($rez);
while($rezcol=mysql_fetch_array($rezl)){
echo $put2 [$rezcol[put]] - $rezcol[q];
}
?>
|
Выводит ошибку
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in | |
|
|
|
|
|
|
|
для: OLi
(14.07.2008 в 01:29)
| | То $rez, то $rezl - выберете что-то одно. И уберите строку перед циклом. Она лишняя.
Кстати, у Вас нарушена логика в теле цикла. | |
|
|
|
|
|
|
|
для: BinLaden
(14.07.2008 в 01:37)
| | Да строка лишняя-убрал ее. Все-таки там $rez | |
|
|
|
|
|
|
|
для: OLi
(14.07.2008 в 01:40)
| | > Все-таки там $rez
То есть ошибка в другом месте? | |
|
|
|
|
|
|
|
для: BinLaden
(14.07.2008 в 01:45)
| | В скрипте я написал $rez
Когда писал на форум-случайно написал $rezl
И так я не понял что нарушено и как решить задачу | |
|
|
|
|
|
|
|
для: OLi
(14.07.2008 в 01:54)
| |
SELECT `put`, COUNT(*) AS `q` FROM `TAB1` GROUP BY `put`
|
Без "ASC".
<?php
echo $put2 [$rezcol[put]] - $rezcol[q];
|
Здесь вы из строки вычитаете число?
И строковые ключи заключайте в кавычки, на всякий случай.. | |
|
|
|
|
|
|
|
для: sms-send
(14.07.2008 в 07:23)
| | Там знак тире а не вычитания )))
Все равно не работает
<?php
echo $put2 [$rezcol[put]] ."-"."$rezcol[q]";
|
| |
|
|
|
|
|
|
|
для: oli
(14.07.2008 в 13:31)
| | Кто-то может помочь решить. Или объяснить-может я чего не то делаю, что не работает! | |
|
|
|
|
|
|
|
для: OLi
(14.07.2008 в 14:42)
| | Весь код, со всеми исправлениями, сюда... | |
|
|
|
|
|
|
|
для: sms-send
(14.07.2008 в 15:14)
| | Вот код:
<?php
$put2 = array(1=>"Картинки", "Программы", "Видео","Ролики","Текст");
$rez=mysql_query("SELECT `put`, COUNT(*) AS `q` FROM `TAB1` GROUP BY `put`",$link);
while($rezcol=mysql_fetch_array($rez)){
echo $put2[$rezcol[put]]."-".$rezcol[q];
}
?>
|
| |
|
|
|
|
|
|
|
для: sms-send
(14.07.2008 в 07:23)
| | > Без "ASC"
С чего бы это?
http://dev.mysql.com/doc/refman/5.1/en/select.html#id4714308 - вроде вполне разрешено. | |
|
|
|
|
|
|
|
для: Orc
(14.07.2008 в 15:30)
| | Все теперь норм.Спасибо всем! | |
|
|
|
|
|
|
|
для: OLi
(14.07.2008 в 15:43)
| | > Все теперь норм
А в чём была ошибка, если не секрет? | |
|
|
|