кто шарит в php? помогите пожалуйста выявить ошибку

12
B
На сайте с 16.03.2009
Offline
8
947

раньше не приходилось заниматься sql-запросами и попал в тупик.

подключие к бд уже осуществлено, вот код

//сам запрос

$sql = "SELECT comment_ID, comment_author_ID

FROM blr_comments

GROUP BY comment_author_ID, comment_ID

ORDER BY comment_author_ID, comment_ID";

// выполняем запрос

$qry = mysql_query($sql);

//полученные данные пытаюсь записать в массив

$row = mysql_fetch_assoc($qry);

//пытаюсь выудить хотя бы ид комментария

echo '$row["comment_ID"]';

но в конечном счете, скрипт выдает такую строку

$row["comment_ID"]

, вместо нужной таблицы

Прошу тех, кто разбирается, подскажите что я делаю не так

$row["comment_ID"]

Апокалипсис
На сайте с 02.11.2008
Offline
391
#1

echo $row["comment_ID"];

Убрать '

Записки нищего (http://zapiskinishego.ru) - мой личный блог Услуги php программиста. Очень нужна любая работа. Не покупают? Поведенческий аудит интернет-магазина за 5000 руб. (/ru/forum/990312)
orphelin
На сайте с 02.07.2006
Offline
261
#2

попробуйте вывести данные так:

while ($row = mysql_fetch_array($qry))

{ echo '$row["comment_ID"]'; }

orphelin добавил 26.03.2009 в 15:29

Апокалипсис:
echo $row["comment_ID"];
Убрать '

да кстати, выше верно подсказали - переменыее в кавычках типа ' не обрабатываются, обрабатываются только в двойных - "

iexpert
На сайте с 01.09.2005
Offline
184
#3
Апокалипсис:
echo $row["comment_ID"];
Убрать '

+1 но не понятно ему будет.

Суть: в кавычках выводится строка, а переменная выводится без кавычек.

делайте

echo $row["comment_ID"];

а еще правильнее var_dump($row);

Бойтесь ваших желаний, ибо они могут исполниться
B
На сайте с 16.03.2009
Offline
8
#4

спасибо вам огромное, весь день промучался☝😆

iexpert
На сайте с 01.09.2005
Offline
184
#5
bloodtar:
спасибо вам огромное, весь день промучался☝😆

php.net вам в помощь....

B
На сайте с 16.03.2009
Offline
8
#6
iexpert:
php.net вам в помощь....

да есть у меня и учебники, и все... видно невнимательный

bloodtar добавил 26.03.2009 в 17:20

bloodtar,

orphelin,

Апокалипсис,

еще вопрос...

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);

}

выводит 11123, это данные взятые подряд из вестикального столбца comment_author_ID, если цифра повторяется 2, значит пользователь оставил 2 комментария. Например 3333, значит пользователь с id 3 оставил 4 комментария. мне нужно посчитать сколько комментариев оставил каждый пользователь с id'ом

Например, id 2 - 5 комментариев, id 8 - 3 комментария.

Это последнее, помогите пожалуйста, больше лезть не буду.

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

Давайте поподробнее задачу и структуру таблицы.

Запросы в цикле гонять это зло вселенское

S0meT1me
На сайте с 07.06.2008
Offline
109
#8

Извиняюсь за офтоп, но вы разделом ошиблись. Вам сюда /ru/forum/development/web

B
На сайте с 16.03.2009
Offline
8
#9
iexpert:
Давайте поподробнее задачу и структуру таблицы.
Запросы в цикле гонять это зло вселенское

краткий вариант таблицы

comment_ID comment_author_ID

1 2

2 5

3 1

4 1

5 2

запрос к бд записан выше в комментариях.

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

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

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

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

$sql = "SELECT comment_author_ID, count(*) AS someVarName FROM blr_comments GROUP BY comment_author_ID";

$qry = mysql_query($sql);

while ($row = mysql_fetch_assoc($qry)){

echo $row["comment_author_ID"]." -> ".$row["someVarName"]."<br>";

}

В $row["comment_author_ID"] - айдишник автора, в $row["someVarName"] - количество его постов

Суть - одним запросом получить все ваши данные, а потом уже в цикле работать с полученными данными, а не грузить сервер баз данных постоянными запросами ради получения циферки.

Если например нужно имя автора - то точно так же - получаем в массив ВСЕХ авторов, делаем ключем массива идентификатор автора, и уже потом работаем с массивом.

А то вы щас начнете строить огромные таблицы авторов, каждый раз делая пару тройку запросов на строку таблицы...

И вам верно указали - хотите ответов, идите в правильный раздел форума, я больше в этом разделе отвечать не буду: имхо не правильно, просто сначала не заметил.

12

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