如何基于此查询创建排名PHP函数:
SELECT @rownum := @rownum + 1 AS rank
, id, name, avatar, views
FROM users
, (SELECT @rownum := 0) AS dummy
WHERE users.group_id = 5
ORDER BY views DESC
类似的东西:
function $rank {
$rank = SELECT @rownum := @rownum + 1 AS rank, id, name, avatar, views FROM users, (SELECT @rownum := 0) AS dummy WHERE users.group_id = 5 ORDER BY views DESC;
return $rank;
}
然后回应我网站上的排名。我的想法是在我需要使用它的每个地方(用户列表或用户个人资料)获得用户排名
答案 0 :(得分:0)
编辑:这应该可以解决问题。
<?php
function getUserRank($group) {
$query = "SELECT id, name, avatar, views "
. "FROM users "
. "WHERE users.group_id = :group "
. "ORDER BY views DESC";
// Execute query. This is the PDO version
$query = $db->prepare($query);
$query->bindValue(':group', $group);
$query->execute();
return $query->fetchAll(PDO::FETCH_ASSOC);
}
// Call function and pass the group ID over;
$list = getUserRank($group);
for ($i = 1; $i <= (count($list)); $i++) {
echo "$i -> $list->[name] -> $list->[$avatar] -> $list->[views]";
}
?>