Php 如何从MySQL数据库中选择前5名
现在我正在使用这个非常复杂的方法,因为我认为这可能会容易得多Php 如何从MySQL数据库中选择前5名,php,mysql,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
$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个有相同的数量,它也将不起作用
有更好的方法吗
$query= mysql_query("SELECT * FROM data WHERE likes=$i ORDER BY date_inserted DESC LIMIT 5);
如果您有日期,则可以使用SQL;如果您有串行主键,则可以使用串行降序。首先,您可以编写SQL,以便它对结果集进行排序和限制:
SELECT * FROM data ORDER BY likes DESC LIMIT 5
请在此处进一步了解MySQL select语法:
下一步,你不应该使用mySQL函数。它们已经被很长一段时间的背弃了。考虑切换到mySQL,或者更好地使用.< /p>我将猜测“mysql”。在任何情况下,搜索“从MySQL选择top”都会产生很多结果。(大多数会涉及分组或聚合,因为这更有趣,但限制的语法应该很快就会显现出来;如果首先找到手册的链接,情况会更明显)。这可能会有帮助:小心!
$i='或'1'='1
boom!很好地指出,需要ORDER BY来确保限制是有意义的(否则结果可能是任意记录)。仍然不适合使用字符串插值。确定。如何在数组中访问这些记录?因为将有5行,而不使用PDO:$statement=$PDO->prepare($query);while($row=$statement->fetchObject()){echo$row->id;}
。检查PDO的文档,所有内容都将被清除。@user2438604您已经在使用mysql\u fetch\u array()
,因此这就是访问行的方式。阅读文档了解更多信息,或者还有大量教程。