基于 SQL 查询的 PHP 函数


php function based on a sql query

如何根据此查询制作排名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;
}

然后在我的网站上呼应排名。这个想法是在我需要使用它的每个地方(用户列表或用户配置文件)上获得用户排名

编辑:这应该可以解决问题。

<?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]";
}
?>