Код (Text): $post=$this->db->fetch_array_all("SELECT * FROM `post` ORDER BY `id` DESC LIMIT 0, 10;"); $type_1=$this->db->fetch_array_all("SELECT COUNT(*) FROM `smile` WHERE `post_id` = ".$this->db->quote_($this->id)." AND `enabled` = 1 AND `type_smile` = 1;"); $type_2=$this->db->fetch_array_all("SELECT COUNT(*) FROM `smile` WHERE `post_id` = ".$this->db->quote_($this->id)." AND `enabled` = 1 AND `type_smile` = 2;"); $type_3=$this->db->fetch_array_all("SELECT COUNT(*) FROM `smile` WHERE `post_id` = ".$this->db->quote_($this->id)." AND `enabled` = 1 AND `type_smile` = 3;"); Можно ли не отправлять 3 запроса, а выполнить 1 и чтобы ни сказывалось на производительности У каждого поста есть 3 смайла: это хорошо -) это нормально это плохо Все голосуют в итоге потом на главной странице нужно будет вывести заголовок поста и 3 смайла с цифрой голосов у каждого смайла, причем пост тоже является смайлом и его нужно будет учитывать В итоге считаем Допустим на странице нужно вывести 10 последних тем, для каждой темы нужно вывести смайлы и того получается 30 запросов!!! Как можно упростить? Вот так будет выглядеть http://pixs.ru/showimage/testpng_4257106_9084930.png
между делом точку с запятой убери из текста запроса. Код (Text): SELECT `type_smile`, COUNT(*) AS `cnt` FROM `smile` WHERE `post_id` = :id AND `enabled` = 1 GROUP BY `type_smile` выполни это сначала в phpmyadmin чтобы знать как выглядит результат. конечно :id замени на какое-нибудь реальное значение