2017-10-14 126 views
-1

示例列在SQL:如何统计sql和php中从最高到最低数列的数量?

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

我用 “SELECT * FROM表ORDER BY观看递减”,结果我得到:

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

但我想通过顶部添加 “编号顺序” ID(像排名)在PHP,例如文本:

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

所以我需要添加这些顶级用PHP的家伙,我想将$使用我++来计数或类似的东西这在PHP中?

回答

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>'; 
+0

太谢谢你了! – Tanker

1

在打印结果的循环中增加一个变量。

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

非常感谢! – Tanker

0

您可以从SQL查询本身做:

可能是你应该试试这个:

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

非常感谢! – Tanker