2012-05-29 3 views
0

Я пытаюсь создать функцию, которая возвращает массив idnumber (для страниц) в зависимости от количества просмотров страницы, занимаемой числом просмотров. Каждый раз, когда кто-то просматривает таблицу, появляется новая строка. Поэтому мне в основном нужно подсчитывать строки, но делать это с помощью pageid. Я думаю, что он использует счет, но SQL не мой сильный костюм. Может ли кто-нибудь предложить правильный способ сделать это? Благодаря!PHP/MYSQL Наиболее популярный синтаксис запроса

table 'views': 

id | pageid | 

SELECT COUNT(id) from views WHERE pageid== '22' ORDER BY COUNT(id) 

ответ

3

Попробуйте

SELECT pageid, COUNT(id) FROM views 
WHERE pageid== '22' 
GROUP BY pageid 
ORDER BY COUNT(id) 
+0

Я забыл, что мне нужно присоединиться к нему с двумя другими столами, пользователями и топазами. Запрос без самой популярной версии - SELECT t.short, t.whenadded, t.id, t.userid, u.ID, u.uid FROM 'topages' t LEFT JOIN' users' u ON t.userid = u .ID WHERE (short LIKE '% $ str%' ИЛИ ​​long LIKE '% $ str%') "; – user1260310

+0

Это сработало ... Как бы эхо счетчик (id)? Я попытался установить $ row равным результатам запроса и вызывает echo $ row ['count (id)'], но это не сработало. Также попытался $ row ['count (v.id)'], поскольку он является частью соединения и устанавливает их в переменные, но не идет. Любые предложения? – user1260310

+0

Добавьте псевдоним к 'COUNT (id)', что-то вроде 'COUNT (id) AS countid' – Nico

1

Я бы этот пост в качестве комментария, но я, видимо, не имеют доступа к комментарий еще ...

Как бы эхо графа (Я бы)?

Назначить псевдоним, как так:

SELECT pageid, COUNT(id) as viewcount FROM views 
WHERE pageid== '22' 
GROUP BY pageid 
ORDER BY COUNT(id) 

Тогда вы можете получить доступ к ряду с:

echo $row['viewcount']; 

К сожалению, я не могу с стыки часть - я никогда не имел много удачи, соединяющих таблицы при использовании функций, таких как count или group by.

Смежные вопросы