-1

现在我正在使用这种非常复杂的方法,我认为这可能会容易得多

<?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 个喜欢的数量相同,它也不会起作用,有没有更好的怎么做?

4

2 回答 2

5

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

SELECT * FROM data ORDER BY likes DESC LIMIT 5

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

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

于 2013-06-20T23:06:59.440 回答
0
$query= mysql_query("SELECT * FROM data WHERE likes=$i ORDER BY date_inserted DESC LIMIT 5);

如果你有一个日期,或者如果你有一个串行主键,你可以通过 SERIAL 降序来工作。

于 2013-06-20T23:05:30.047 回答