【发布时间】:2012-02-20 20:46:11
【问题描述】:
(a) 我有分页代码之前我问我的问题:
$query = "SELECT COUNT(*) as num FROM $tableName";
$total_pages = mysql_fetch_array(mysql_query($query));
$total_pages = $total_pages[num];
$total_pages 一直在计算 ALL 数据库中的记录,因为上面列出的代码正在计算所有页面 BEFORE 我进行查询 - 我想要在查询结果之后计数的记录,并从这些结果中获取正确的页数。
在我的 SELECT 语句的一系列代码行之后,我的查询以这样的方式结束(工作正常 - 除了上面概述的分页问题)。
$query = "SELECT * FROM $tableName $qryWhere LIMIT $start, $limit";
$result = mysql_query($query);
在上面之后,接下来是 Pagination 代码的其余部分,以及查询结果。他们都工作。问题是在我查询之前计算所有数据库页面的前 3 行。
提前感谢您为我提供的任何帮助!
【问题讨论】:
-
专业提示:不要使用
mysql_函数。它们已经过时了。使用 PDO。 -
因此,将结果集上的相同过滤器应用于
COUNT(*)调用,一切都应该很好吗?如果您仅基于 `WHERE foo-bar 选择结果,则将其应用于 count 调用... -
不完全理解这个问题。通常您想知道表中的记录总数,正如您在第一个代码块中概述的那样,以便您知道 UI 需要多少页。如果您想知道返回了多少条记录,您可以遍历您的结果并计算它们。
-
什么是qryWhere?这会有所帮助....
-
我在上面解释过 - 我不知道“如何” - 我的无知 - 我很抱歉......