Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从MySQL数据库中选择前5名_Php_Mysql - Fatal编程技术网

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()
,因此这就是访问行的方式。阅读文档了解更多信息,或者还有大量教程。