【问题标题】:Get highest values from database-table从数据库表中获取最高值
【发布时间】:2014-04-03 05:59:41
【问题描述】:

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

现在我需要点击次数最多的用户名(前 4 个),如下输出:

  1. name10: 15

  2. name10: 14

  3. name10: 13

  4. name10: 12

我现在只有这个:

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

我必须创建多维数组吗?

【问题讨论】:

  • SELECT username,clicks FROM table ORDER BY clicks DESC LIMIT 4

标签: php arrays pdo logic concept


【解决方案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/>';

}

【讨论】:

    【解决方案2】:

    您可以通过点击排序表格,按降序顺序,然后限制选择到前4位。

    SELECT id, username, clicks FROM table ORDER BY clicks DESC LIMIT 4
    

    您可以使用以下步骤将数据保存到数组中:

    $users = $result->fetchAll();
    

    可以返回关联 (PDO::FETCH_ASSOC) 或数字 (PDO::FETCH_NUM) 数组(以及其他选项)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-09
      相关资源
      最近更新 更多