Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.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-PDO查询中FOREACH的限制_Php_Mysql_Pdo - Fatal编程技术网

Php MySQL-PDO查询中FOREACH的限制

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

我正在使用下面的代码尝试回显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>

使用限制词:

 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个最新条目。你的答案几乎正确,但应该有一个描述,我尝试了所有这些,这就是我的结论是的,这是有效的:谢谢,但从我注意到的,它应该包括描述。无论如何,感谢你的答案。