Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Подсчет строк с определенным значением
Форумы портала PHP.SU » PHP » SQL и Архитектура БД » Подсчет строк с определенным значением

Страниц (2): [1] 2 »
 

1. Dezmonds - 21 Мая, 2011 - 00:13:01 - перейти к сообщению
Подскажите пожалуйста! не знаю как решить… ничего не получается…

У меня на главной выводятся статьи. Пусть будет 3 статьи.
У каждой статьи есть ссылка на страничку с подробным описанием.
Пусть будет так: /articles-item.php?id=7&table=blogs_users

Так же есть страничка comments.php которая добавляет комментарии в отдельную таблицу. Comment .
В файле articles-item.php выводится подробная информация с комментариями. Комментарии достаем из таблицы по ID. то есть вытаскиваем все комментарии где ID = 7.. Вопрос. Как мне на главной посчитать сколько комментариев у которых ID = номеру таблицы.

Есть таблица:

id post
1 7
2 7
3 4
4 2
5 7
6 4

Должен вывести. 3/ (это если rticles-item.php?id=7 )На главной возле каждой статьи должен показать сколько Комментов с таким же параметром что и ID Таблицы. если post =7 значит он относиться к таблице 7.
2. ugin_root - 21 Мая, 2011 - 00:17:47 - перейти к сообщению
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT `post`, COUNT(*) FROM `table1` GROUP BY `post`
3. Мелкий - 21 Мая, 2011 - 00:19:22 - перейти к сообщению
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT count(`id`) AS `cnt`,`post` FROM `tbl` GROUP BY `post`

если верно понял, что есть и что надо.
4. molchun201 - 21 Мая, 2011 - 00:19:31 - перейти к сообщению
Dezmonds пишет:
Как мне на главной посчитать сколько комментариев у которых ID = номеру таблицы.

номер таблицы? - это что такое? Однако

Однако
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT COUNT(id) FROM TABLE WHERE id=id_table
5. Dezmonds - 21 Мая, 2011 - 00:24:51 - перейти к сообщению
Видимо я неверно объяснил. Давайте проще..

Есть файл articles-item.php

он выводит комментарии из таблицы comment где post = id ( id = номер статьи)

Нужно подсчитать сумму (количество) строк, где post = id из таблицы comment

P.s когда добавляется комментарий в таблицу comment ему присваиваться номер статьи

Получается если мы просматриваем статью articles-item.php?id=10 и добавляем коммент, то он записывается в табличку comment с номером 10 в поле post.

Нужно подсчитать сколько значение с post где несколько значений post в таблице Равны 10

Таблица:comment

id post
1 10
2 10
3 10
4 2
5 2
6 4

Если просматриваем статью: articles-item.php?id=10

То нужно сформировать такой запрос. чтобы он показал в данной статье: 3 комментария
6. maragon - 21 Мая, 2011 - 00:32:53 - перейти к сообщению
А какой велосипед ты пытаешься изобрести? как-то ты все интересно придумал)
я бы копал в сторону
и
CODE (SQL):
скопировать код в буфер обмена
  1. LEFT JOIN
Хм
7. ugin_root - 21 Мая, 2011 - 00:33:07 - перейти к сообщению
Dezmonds
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT COUNT(*) AS 'count' FROM `table1` WHERE `post`='10'


но если нужно вывести колличество сообщений, скажем для 10 темок, то гараздо меньше ресурсов потратит предыдущий вариант.
8. molchun201 - 21 Мая, 2011 - 00:34:34 - перейти к сообщению
Dezmonds пишет:
Нужно подсчитать сумму (количество) строк, где post = id из таблицы сommenst


Однако
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT COUNT(*) FROM comments WHERE post=id

(Добавление)
Автор научись задавать корректно вопросы, будешь получать корректные ответы Хм
9. Dezmonds - 21 Мая, 2011 - 00:36:35 - перейти к сообщению
ugin_root пишет:
SELECT COUNT(*) AS 'count' FROM `table1` WHERE `post`='10'


PHP:
скопировать код в буфер обмена
  1. SELECT COUNT(*) AS post FROM comments WHERE post='$id'
у меня показывает 1. хотя в таблице 2 строки где post = 10

P.S Прошу прощения. в php совсем недавно. в голове сумбур Улыбка
10. ugin_root - 21 Мая, 2011 - 00:39:23 - перейти к сообщению
Dezmonds
покажи небольшой кусочек кода в котором происходит сам запрос и то как ты его выводишь.
11. Dezmonds - 21 Мая, 2011 - 00:41:32 - перейти к сообщению
ugin_root пишет:
покажи небольшой кусочек

PHP:
скопировать код в буфер обмена
  1.  
  2. $view = mysql_query("SELECT COUNT(*) FROM comments WHERE post='$id'",$db);
  3.  if (!$view)
  4.  {
  5.         echo "<p> !!Запрос на выборку данных из базы не прошел.Пожалуйста сообщение администратору: ";
  6.         exit(mysql_error());
  7.  }
  8.  
  9. $views = mysql_num_rows($view);
  10. echo "$views";

с таким запросом:
PHP:
скопировать код в буфер обмена
  1. SELECT COUNT(*) AS post FROM comments WHERE post='$id'
тоже 1 выводит.
12. ugin_root - 21 Мая, 2011 - 00:44:55 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $view = mysql_query("SELECT COUNT(*) AS 'count' FROM comments WHERE post='$id'",$db);
  2.  if (!$view)
  3.  {
  4.         echo "<p> !!Запрос на выборку данных из базы не прошел.Пожалуйста сообщение администратору: admin@osako.su";
  5.         exit(mysql_error());
  6.  }
  7. $row = mysql_fetch_array($view, MYSQL_ASSOC);
  8. echo "Количество сообщений: " . $row['count'];
13. DeepVarvar - 21 Мая, 2011 - 00:50:40 - перейти к сообщению
А так не вариант?
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT post.*,(SELECT COUNT(*) FROM comments WHERE comments.post_id = post.id) commcnt
  2. FROM post WHERE post.id = $value_from_php
14. Dezmonds - 21 Мая, 2011 - 00:52:22 - перейти к сообщению
ugin_root - Спасибо Вам Большое!!!

Отличный форум, отличные люди! Спасибо!
15. ugin_root - 21 Мая, 2011 - 00:54:41 - перейти к сообщению
DeepVarvar
зачем усложнять человеку жизнь запросами внутри запросов, если он на данный момент не может показать результат таблицы с одним столбцом и строкой?

 

Powered by ExBB FM 1.0 RC1