我正在使用下面的代码尝试回显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_reverse($query->fetchAll());
foreach ($data as $row) {
echo "<tr><td>{$row['title']}</td><td>{$row['id']}</td></tr>";
}
?>
</table>
谢谢!
请注意我是PHP的新手,我需要帮助,所以如果这个问题没用,请帮助我,因为我刚刚开始这个。
答案 0 :(得分:4)
在SQL查询中使用LIMIT
子句:
SELECT * FROM `content` ORDER BY `id` DESC LIMIT 5
来自the manual:
LIMIT子句可用于约束SELECT语句返回的行数。 LIMIT需要一个或两个数字参数,它们都必须是非负整数常量(使用预准备语句时除外)。
使用两个参数,第一个参数指定要返回的第一行的偏移量,第二个参数指定要返回的最大行数。初始行的偏移量为0(不是1):
答案 1 :(得分:3)
使用LIMIT字:
SELECT * FROM `content` ORDER BY `id` DESC LIMIT 5
答案 2 :(得分:2)
order by id desc
删除array_reverse和limit 5
以限制返回结果的数量。
$q = "SELECT * FROM `content` ORDER BY `id` DESC LIMIT 5";
...
$data = $query->fetchAll();
作为一个全局指南:在编写查询时,尝试以一种尽可能接近您需要的方式来表达它们,即之后没有额外的排序或过滤操作。
答案 3 :(得分:1)
从数据库中提取数据时,通常通过MySQL查询设置LIMIT
,而不是在读取返回的数据时计算循环迭代。
$q = "SELECT * FROM `content` ORDER BY `id` LIMIT 5";