我的数据库表中有这个结构:
现在我需要大多数点击的用户名(前4名),如此输出:
name10:15
name10:14
name10:13
- 醇>
name10:12
我现在就是这样:
$result = $dbh->query("SELECT * FROM table");
$result->execute();
while ($user = $result->fetch(PDO::FETCH_NUM)) {
// save data in array´s ?
}
我是否必须创建多维数组?
答案 0 :(得分:1)
要获得最高的数字,您可以使用MAX
:
$result = $dbh->query("SELECT MAX(clicks) AS clicks FROM table");
要获得前4个结果并按点击顺序,请使用ORDER BY
:
$result = $dbh->query("SELECT * FROM table ORDER BY clicks DESC LIMIT 4");
$result->execute();
$rows = $result->fetchAll(PDO::FETCH_ASSOC);
foreach ($rows as $key => $array) {
echo $key + 1 . '. ' . $array['username'] . ': ' . $array['clicks'] . '<br/><br/>';
}
答案 1 :(得分:0)
您可以通过点击降序顺序订购,然后限制将选择设置为前4名。
SELECT id, username, clicks FROM table ORDER BY clicks DESC LIMIT 4
您可以使用以下步骤将数据保存到数组中:
$users = $result->fetchAll();
可返回关联(PDO :: FETCH_ASSOC)或数字(PDO :: FETCH_NUM)数组(以及其他选项)。