0

我正在使用下面的代码来尝试回显 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 新手,需要帮助,所以如果这个问题没有用,请帮助我,因为我才刚刚开始。

4

4 回答 4

4

LIMIT在 SQL 查询中使用子句:

SELECT * FROM `content` ORDER BY `id` DESC LIMIT 5

手册

LIMIT 子句可用于限制 SELECT 语句返回的行数。LIMIT 接受一个或两个数字参数,它们都必须是非负整数常量(使用准备好的语句时除外)。

有两个参数,第一个参数指定要返回的第一行的偏移量,第二个参数指定要返回的最大行数。初始行的偏移量为 0(不是 1):

于 2012-07-09T11:59:36.313 回答
3

使用限制字:

 SELECT * FROM `content` ORDER BY `id` DESC LIMIT 5
于 2012-07-09T11:59:19.777 回答
2

order by id desc摆脱 array_reverse 并limit 5限制返回结果的数量。

$q = "SELECT * FROM `content` ORDER BY `id` DESC LIMIT 5";
...
$data = $query->fetchAll();

作为一个全局准则:在编写查询时,请尝试以使结果集尽可能接近您需要的方式来制定查询,即之后没有额外的排序或过滤操作。

  1. 让 dbserver 发送您不会使用的数据是一种浪费
  2. 必须在网络服务器上重新过滤/重新过滤数据会降低网络服务器的性能,并且在大型结果集的情况下,它也会消耗大量内存
于 2012-07-09T12:00:39.357 回答
1

从数据库中提取数据时,您通常LIMIT通过 MySQL 查询设置 a,而不是在读取返回的数据时计算循环迭代次数。

$q = "SELECT * FROM `content` ORDER BY `id` LIMIT 5";
于 2012-07-09T12:00:47.360 回答