помогите пожалуйста с php и запросами sql

B
На сайте с 16.03.2009
Offline
8
440

краткий вариант таблицы, вставил черточки для удобства просмотра

comment_ID ---comment_author_ID

1--------------------- 2

2--------------------- 5

3--------------------- 1

4--------------------- 1

5--------------------- 2

запрос

function view_top30()

{

$sql = "SELECT comment_author_ID FROM blr_comments";

$qry = mysql_query($sql);

$row = mysql_fetch_assoc($qry);

echo $row["comment_author_ID"];

mysql_free_result($qry);

}

скрипт выдает: 25112

моя задача: построить рейтинг на основе комментариев, например юзер и id 1 имеет рейтинг 2, так как комментария у него 2

сколько раз id одного пользователя повторяется в 25112, столько комментариев он и оставил, а как из этой строчки посчитать, сколько раз повторяется каждый из id'ов?

J
На сайте с 02.02.2009
Offline
53
#1

SELECT COUNT(*),comment_author_ID FROM blr_comments GROUP BY comment_author_ID;

B
На сайте с 16.03.2009
Offline
8
#2
jumash:
SELECT COUNT(*),comment_author_ID FROM blr_comments GROUP BY comment_author_ID;

и что от этого изменится? мы просто сгруппируем цыфры рядом и все

iexpert
На сайте с 01.09.2005
Offline
184
#3

А вот тут что не ясно?

/ru/forum/comment/4579351

iexpert добавил 26.03.2009 в 18:23

bloodtar:
и что от этого изменится? мы просто сгруппируем цыфры рядом и все

Печально, когда человек не хочет или не может прислушаться к советам, которые ему дают.

Вам подсказали принципиально верный метод работы в данном случае, забудте про свою функцию, которая выводит на экран одну цифру и ради нее делает запрос к базе.

Прочитайте то что я написал. не поможет - прочитайте снова, повнимательнее.

В конце концов запустите программу и посмотрите что она выдает.

Бойтесь ваших желаний, ибо они могут исполниться
J
На сайте с 02.02.2009
Offline
53
#4
bloodtar:
и что от этого изменится? мы просто сгруппируем цыфры рядом и все

Ппц

Сами-то понимаете свою же задачу?=)

Расширю до доступного пониманию:


$query = "SELECT COUNT(*),comment_author_ID FROM blr_comments GROUP BY comment_author_ID;"
$result = mysql_query($query);
while($row = mysql_fetch_row($result)){
echo "юзер и id ".$row[1]." имеет рейтинг ".$row[0].", так как комментария у него ".$row[0]."<br>";
}

UPD: Телепатическое включение

Вывести ТОП30 комментаторов


$query = "SELECT COUNT(*) c,comment_author_ID FROM blr_comments GROUP BY comment_author_ID ORDER BY c DESC LIMIT 30;"
$result = mysql_query($query);
while($row = mysql_fetch_row($result)){
echo "юзер и id ".$row[1]." имеет рейтинг ".$row[0].", так как комментария у него ".$row[0]."<br>";
}

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий