简体   繁体   English

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

[英]How to count number from highest to lowest number column in sql and php?

Example column in sql: sql 中的示例列:

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

I use "SELECT * FROM table ORDER BY viewed desc", the result I get:我使用“SELECT * FROM table ORDER BY views desc”,我得到的结果:

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

But I want to add "number order" by Top id ( like ranking ) in PHP, example text:但我想在 PHP 中按 Top id(如排名)添加“编号顺序”,示例文本:

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

So what I need to add these top with PHP guys, I think will use $i++ to count number or something like this in php ?那么我需要在 PHP 中添加这些顶部,我认为将使用 $i++ 来计算 php 中的数字或类似的东西?

Increment a variable during the loop that prints the results.在打印结果的循环期间增加一个变量。

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

Something like this?像这样的东西?

$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>';

You can do it from the sql query itself :您可以从 sql 查询本身执行此操作:

May be you should try this:也许你应该试试这个:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM