如何计算sql和php中从最高到最低数字列的数量?

时间:2017-10-14 07:01:25

标签: php sql

sql中的示例列:

id|viewed
1|1000
35|500
47|1200
79|700
84|300

我使用“SELECT * FROM table ORDER BY view desc”,结果我得到了:

47|1200
1|1000
79|700
35|500
84|300

但是我想在PHP中添加Top id(如排名)的“数字顺序”,示例文本:

  • ID 47是1
  • ID 1是2
  • ID 79是3
  • ID 35是4
  • ID 84是5

那么我需要在PHP中添加这些顶级内容,我认为会使用$ i ++在php中计算数字或类似内容吗?

3 个答案:

答案 0 :(得分:1)

在打印结果的循环期间增加变量。

$i = 1;
while ($row = $stmt->fetch()) {
    echo "ID {$row['id']} is $i<br>";
    $i++;
}

答案 1 :(得分:0)

这样的东西?

$query = $db->query("SELECT * FROM table ORDER BY viewed desc");
$rows = $query->fetchAll(PDO:FETCH_ASSOC);

count = count($rows);
echo '<ul>';
for ($x = 0; $x < count; $x++) {
  echo '<li>ID ' + $rows[$x]['id'] + ' is ' + $x + '.</li>'
}
echo '</ul>';

答案 2 :(得分:0)

您可以从sql查询本身执行此操作:

可能你应该试试这个:

set @row_num = 0;
SELECT @row_num := @row_num + 1 AS number,id,viewed FROM `table` ORDER BY viewed desc