从database-table获取最高值

时间:2014-04-02 21:32:01

标签: php arrays pdo logic concept

我的数据库表中有这个结构:

enter image description here

现在我需要大多数点击的用户名(前4名),如此输出:

  
      
  1. name10:15

  2.   
  3. name10:14

  4.   
  5. name10:13

  6.   
  7. name10:12

  8.   

我现在就是这样:

    $result = $dbh->query("SELECT * FROM table");
    $result->execute();
    while ($user = $result->fetch(PDO::FETCH_NUM)) {
        // save data in array´s ? 
    }

我是否必须创建多维数组?

2 个答案:

答案 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)数组(以及其他选项)。