Php MySQL-PDO查询中FOREACH的限制
我正在使用下面的代码尝试回显MySQL表上最新的5个条目,我无法,但似乎能够想出如何限制结果的数量,有人能帮助我将结果的数量限制为5行吗Php MySQL-PDO查询中FOREACH的限制,php,mysql,pdo,Php,Mysql,Pdo,我正在使用下面的代码尝试回显MySQL表上最新的5个条目,我无法,但似乎能够想出如何限制结果的数量,有人能帮助我将结果的数量限制为5行吗 <table> <?php require_once($_SERVER['DOCUMENT_ROOT'] . "/resources/pdo.php"); $q = "SELECT * FROM `content` ORDER BY `id`"; $query = $pdo->query($q); $data = array_reve
<table>
<?php
require_once($_SERVER['DOCUMENT_ROOT'] . "/resources/pdo.php");
$q = "SELECT * FROM `content` ORDER BY `id`";
$query = $pdo->query($q);
$data = array_reverse($query->fetchAll());
foreach ($data as $row) {
echo "<tr><td>{$row['title']}</td><td>{$row['id']}</td></tr>";
}
?>
</table>
使用限制词:
SELECT * FROM `content` ORDER BY `id` DESC LIMIT 5
在SQL查询中使用LIMIT
子句:
SELECT * FROM `content` ORDER BY `id` DESC LIMIT 5
发件人:
LIMIT子句可用于约束SELECT语句返回的行数。LIMIT接受一个或两个数值参数,这两个参数都必须是非负整数常量(使用准备语句时除外)
对于两个参数,第一个参数指定要返回的第一行的偏移量,第二个参数指定要返回的最大行数。初始行的偏移量为0(不是1):
order by id desc
以消除数组的反转,并限制5
以限制返回结果的数量
$q = "SELECT * FROM `content` ORDER BY `id` DESC LIMIT 5";
...
$data = $query->fetchAll();
作为一项全局指导原则:在编写查询时,尝试以这样一种方式对其进行表述,即结果集尽可能接近您所需要的结果集,即之后不需要额外的排序或筛选操作
让dbserver发送您不打算使用的数据是一种浪费
必须在Web服务器上使用/重新过滤数据会降低Web服务器的性能,而且,在大结果集的情况下,也会消耗大量内存
从数据库中提取数据时,通常通过MySQL查询设置限制
,而不是在读取返回数据时计算循环迭代次数
$q = "SELECT * FROM `content` ORDER BY `id` LIMIT 5";
你问过谷歌吗?顺便说一句,LIMIT 5
将起作用。谷歌√ IRC.PHPFREAKS√ 他们都给出了~ ok的答案,但在这里,我发现在限制5后应该有一个DESC,谢谢PLB!谢谢@ftom2,但当我这样做时,不是最后5行出现,而是第一行,我想要5个最新条目。你的答案几乎正确,但应该有一个描述,我尝试了所有这些,这就是我的结论是的,这是有效的:谢谢,但从我注意到的,它应该包括描述。无论如何,感谢你的答案。