Php 使用LIMIT时获取总行数

Php 使用LIMIT时获取总行数,php,mysql,Php,Mysql,一直在遵循和许多其他网站的例子,但没有得到预期的结果 我的PHP代码片段 $query="SELECT * FROM book"; $result=mysql_query($query); echo mysql_num_rows($result); //returns 14 $query="SELECT FOUND_ROWS()"; $rtotal=mysql_query($query); echo mysql_result($rtotal,0); //returns 14 $query

一直在遵循和许多其他网站的例子,但没有得到预期的结果

我的PHP代码片段

$query="SELECT * FROM book";
$result=mysql_query($query);
echo mysql_num_rows($result); //returns 14


$query="SELECT FOUND_ROWS()";
$rtotal=mysql_query($query);
echo mysql_result($rtotal,0); //returns 14


$query="SELECT * FROM book LIMIT 0,4";
$result=mysql_query($query);
echo mysql_num_rows($result); //returns 4


$query="SELECT FOUND_ROWS()";
$rtotal=mysql_query($query);
echo mysql_result($rtotal,0); //returns 4 Why is it 4 and not 14??

在最后一个例子中,为什么是4而不是14??我做错了什么?

您最近的查询返回了4行(
$query=“SELECT*FROM book LIMIT 0,4”

这就是它返回4而不是14的原因


要引用文档,请执行以下操作:

如果最近一次成功的SELECT语句中没有SQL\U CALC\U FOUND\U ROWS选项,则FOUND\U ROWS()返回该语句返回的结果集中的行数。如果语句包含LIMIT子句,则FOUND_ROWS()返回达到该限制的行数


将SQL\u CALC\u FOUND\u行添加到select语句中:

这迫使MySQL对行进行计数,就好像limit语句不存在一样

$query="SELECT SQL_CALC_FOUND_ROWS * FROM book LIMIT 0,4";

错。FOUND_ROWS返回在未设置限制的情况下上一个查询将返回的行数@阿列克辛:没有错,请参阅文档(上面引用)。但要使其按预期工作,需要添加
SQL\u CALC\u FOUND\u ROWS
。现在您已经编辑了答案,它是正确的。您声明它不起作用,因为他在上一个查询中使用了限制。如果您的答案被编辑,我将删除我的否决票。请注意,这应该添加到第三个查询中。谢谢!!甚至在我读到的博客中也提到了这一点,不知怎的,我完全错过了