如何从MySQL数据库中选择前5名

时间:2013-06-20 23:02:07

标签: php mysql

现在我正在使用这种非常复杂的方法来实现我认为可以轻松得多的方法

<?php 
$a=0;
for($i=100; $i>=0; $i--){
$query= mysql_query("SELECT * FROM data WHERE likes=$i");
if($query){
$data= mysql_fetch_array($query);
$a++;
if($a<=5){
?><img id=a<?php echo $a; ?> src="img.php?id=<?php echo $data['id']; ?>"/><?php
}
}
}
?>

顺便说一下我连接到数据库 我想要的是知道顶级喜欢的图像的ID 这将只适用于多达100个喜欢,如果2具有相同的数量,它也将无法工作 有更好的方法吗?

2 个答案:

答案 0 :(得分:4)

首先,您可以编写SQL以便对结果集进行排序和限制:

SELECT * FROM data ORDER BY likes DESC LIMIT 5

在这里查看MySQL select语法:http://dev.mysql.com/doc/refman/5.0/en/select.html

接下来,您不应该使用mysql_函数。它们已经被弃用了很长时间。考虑切换到mysqli_,或者更好地使用PDO

答案 1 :(得分:0)

$query= mysql_query("SELECT * FROM data WHERE likes=$i ORDER BY date_inserted DESC LIMIT 5);

如果您有日期,则可以正常工作,或者如果您有序列主键,则可以通过SERIAL降序进行操作。