0

我有引用 MySQL 数据库的代码,它看起来像这样:

<div id="pagination">
    <ul class="page">
        <li class="page"><a href="<c:url value='item?${loop.count${item.id}'/>">${loop.count}</a></li>
    </ul>
</div>

for 循环如下所示:

<c:forEach var="item" items="${itemItems}" begin="0" end="10" varStatus="loop">

这将显示一个数字列表供我用于分页。
我的问题是,如何将其更改为${loop.count}</a>计算行/表中的总项目除以十的数字?现在这是计算仅在页面循环中显示的项目。我希望它计算行中的所有项目,而不仅仅是循环。

4

1 回答 1

0

您需要确定在没有 MySQL 的情况下获得的行数,LIMIT并且OFFSET

这里有两个选项:

  1. LIMIT在没有/的情况下再次执行查询OFFSET

  2. 添加SQL_CALC_FOUND_ROWS到您的查询:

    选择 SQL_CALC_FOUND_ROWS ...

http://dev.mysql.com/doc/refman/5.5/en/information-functions.html#function_found-rows

在这两种情况下,您都可以使用SELECT FOUND_ROWS() AS rows_total

哪个选项更快取决于您的数据库结构、查询复杂性和结果数据。试一试,比较时间。

页数、偏移量和限制的计算是简单的数学运算

伪代码

numPages = ceil( totalRows / rowsPerPage )
sqlLimit = rowsPerPage
sqlOffset = (currentPage-1) * rowsPerPage
于 2013-03-15T07:15:30.957 回答