есть табличка categ в ней 2 поля id_categ и categ и есть вторая табличка object, где хранятся записи, для каждой categ несколько.... мне надо вытащить сами названия categ и чтоб рядом писалось сколько записей у каждой. составил запрос: PHP: $qr = "SELECT *, COUNT(object.id_categ) FROM object, categ WHERE categ.id_categ = object.id_categ ORDER BY categ"; $r = mysql_query($qr); while ($rr = mysql_fetch_array($r)) ///178 строка { } пишет ошибку
спасибо за разъснение )))) А не подскажете именно где ошибка и как сделать правильно? Буду очень благодарен
Откуда я знаю — как? Как — зависит от того, что вы пытаетесь получить. А ошибка в том, что COUNT() - есмь функция групповая и нельзя выбирать одновременно групповую функцию, и просто запрос с полями...
изменил ORDER BY на GROUP BY ... теперь выводятся только те категории в которых есть записи... а как сделать так, чтоб все выводились?
все, сделал, вот так: PHP: <? $qr = "SELECT *, COUNT(object.id_categ) FROM categ LEFT JOIN object ON categ.id_categ = object.id_categ GROUP BY categ"; $r = mysql_query($qr); while ($rr = mysql_fetch_array($r)) { } ?>
тока сейчас заметил, оказывается не все я сделал. Вообщем вот такой запрос: PHP: <? $qr = "SELECT *, COUNT(object.id_categ) FROM categ LEFT JOIN object ON categ.id_categ = object.id_categ GROUP BY categ"; $r = mysql_query($qr); while ($rr = mysql_fetch_array($r)) { echo ' <tr><td><a class="tst8" href = "ind.php?id_categ='.$rr['id_categ'].'">'.$rr['categ'].'</a></td><td align="right">['. $rr['COUNT(object.id_categ)'].']</td></tr>'; } ?> так вот если в категории нет записей, то ссылка на эту категорию не генерится... пробовал разные варианты - не работает... Подскажите плизх как сделать?
categ.id_categ = object.id_categ так ты в результат просишь включать только те категории, которые объекты содержат.. перенеси это условие в WHERE
Какая разница как вы сделали, суть в том что нет обработки ошибок, ни самого запроса ни отсуствия результата... и это плохо.
Оказалось я всего лишь неправильно запрос оставил - надо было так: PHP: <? $qr = "SELECT categ.id_categ, categ.categ, COUNT(object.id_categ) FROM categ LEFT JOIN object ON categ.id_categ = object.id_categ GROUP BY categ"; $r = mysql_query($qr); while ($rr = mysql_fetch_array($r)) { echo ' <tr><td><a class="tst8" href = "ind.php?id_categ='.$rr['id_categ'].'">'.$rr['categ'].'</a></td><td align="right">['. $rr['COUNT(object.id_categ)'].']</td></tr>'; } ?>
Fant0M И опять нет обработки ошибок... Вы бы тогда еще на первой странице темы поняли, что запрос неверный. Или темы не было бы вообще.