[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: запрос к БД
Sexy Devil
Как сделать чтобы выводилось число комментариев, как на блогах.
Мне нужно что-то типа этого - Комментариев: 5

Вот мой запрос:

$c = mysql_query ( " SELECT COUNT(*) FROM `comments` WHERE `a_id` = '$id' ");


Выводится - Комментариев: Resource id #8



Спустя 6 минут, 11 секунд (10.03.2011 - 16:19) Snus написал(а):
$c = mysql_query ( " SELECT COUNT(*) FROM `comments` WHERE `a_id` = '$id' "); 
$cnt = mysql_result($c, 0);
echo $cnt;

Спустя 4 минуты, 10 секунд (10.03.2011 - 16:24) Sexy Devil написал(а):
спасибо, получилось! user posted image

Спустя 10 минут, 23 секунды (10.03.2011 - 16:34) m4a1fox написал(а):
Snus
У меня вопрос... В чем разница, объясните?

$c = mysql_query ( " SELECT id FROM `comments` WHERE `a_id` = '$id' ");
$cnt = mysql_num_rows($c);
echo $cnt;

Спустя 1 минута, 36 секунд (10.03.2011 - 16:36) Snus написал(а):
m4a1fox
mysql_query() выполняет запрос в мускул, а mysql_result, mysql_fetch_assoc - достают результаты. Это если на простом языке.

Спустя 3 минуты, 5 секунд (10.03.2011 - 16:39) Trianon написал(а):
Цитата (m4a1fox @ 10.03.2011 - 16:34)
У меня вопрос... В чем разница, объясните?

$c = mysql_query ( " SELECT id FROM `comments` WHERE `a_id` = '$id' ");
$cnt = mysql_num_rows($c);
echo $cnt;

Запрос SELECT id FROM `comments`WHERE `a_id` = '$id' ... вытаскивает из сервера БД в сервер приложения (php) все выбранные строки.
php определяет количество вытащеных строк и использует его где надо.


Запрос SELECT COUNT(*) FROM `comments`WHERE `a_id` = '$id' ... вытаскивает из сервера БД одну единственную строку с уже посчитанным на стороне БД ответом.


Спустя 2 минуты, 3 секунды (10.03.2011 - 16:41) Snus написал(а):
m4a1fox
mysql_num_rows() Считает кол-во строк из результата обращения к БД. В нашем случае нужно достать значение COUNT(*)

Спустя 1 минута, 24 секунды (10.03.2011 - 16:42) m4a1fox написал(а):
Snus
Ага. Теперь ясно. Соответственно COUNT(*) куда быстрее чем то что я написал?! Так получается?

Спустя 7 минут, 53 секунды (10.03.2011 - 16:50) Sexy Devil написал(а):
еще вопрос, как это всё вывести там где нет
`a_id`
? выводятся статьи, снизу каждой статьи должно быть написано - Комментариев: .... ,
я так сделал:

$c = mysql_query ( " SELECT COUNT(*) FROM `comments` " );
$cnt = mysql_result($c, 0) ;

просто подсчиталось общее число комментов...

Спустя 1 минута, 7 секунд (10.03.2011 - 16:51) alex12060 написал(а):
В какой-то степени да)

Спустя 27 секунд (10.03.2011 - 16:52) m4a1fox написал(а):
Sexy Devil
Смотри как я это реализовал....

$query = mysql_query("SELECT COUNT(*) FROM `comment` WHERE `id_mail`=".(int)$view."");
$cnt = mysql_result($query, 0);
if ($cnt == 0)
{
echo '<div class="underline">
<div class="underline_text">
Нет комментариев.
</div>
</div>'
;
}
else
{
echo '<div class="underline">
<div class="underline_text">
Всего комментариев — ('
.$cnt.')
</div>
</div>'
;
}

Спустя 3 минуты, 10 секунд (10.03.2011 - 16:55) alex12060 написал(а):

$query = mysql_query("SELECT COUNT(*) FROM `comment` WHERE `id_mail`=".(int)$view."") or die(mysql_error());
$cnt = mysql_result($query, 0);
echo '<div class="underline">
<div class="underline_text">'
;
if ($cnt == 0) echo 'Нет комментариев.'; else echo 'Всего комментариев — ('.$cnt.')';
echo '</div>
</div>'
;

Спустя 1 минута, 17 секунд (10.03.2011 - 16:56) alex12060 написал(а):
Sexy Devil

Опиши подробней, я не понял)

Спустя 1 минута, 47 секунд (10.03.2011 - 16:58) m4a1fox написал(а):
alex12060
Ай спасибо, так спасибо. Очень интересное решение.... Очень. И код укарачивает.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.