【问题标题】:echo how many records are being show on pagination pageecho 在分页页面上显示了多少条记录
【发布时间】:2015-03-09 15:45:13
【问题描述】:

我想显示每页显示多少条记录,

例如;

“显示记录 #1 到 #10”或“显示记录 #11 到 #21”

我有以下代码工作,每页显示 10 条记录(有时在不同页面上更多)

<?php
    //Define Some Options for Pagination
$num_rec_per_page=10;
if (isset($_GET["page"])) { $page  = $_GET["page"]; } else { $page=1; }; 
$start_from = ($page-1) * $num_rec_per_page;

$results = mysql_query("SELECT * FROM `ecmt_memberlist` WHERE oldMember = 0 ORDER BY CONCAT(MainToon, Name) LIMIT $start_from, $num_rec_per_page") or die(mysql_error());

    $results_array = array();
    while ($row = mysql_fetch_array($results)) {
        $results_array[$row['characterID']] = $row;
}
?>

        <?php 
    $sql = "SELECT * FROM `ecmt_memberlist` WHERE oldMember = 0 ORDER BY CONCAT(MainToon, Name)";

    $rs_result = mysql_query($sql); //run the query
    $total_records = mysql_num_rows($rs_result);  //count number of records
    $total_pages = ceil($total_records / $num_rec_per_page); 
    ?>


              <table width="100%" border="0" cellspacing="0" cellpadding="0">
                <tr>
                  <td align="center"><div style="width:100%; text-align:center;">
                  <ul class="pagination">
            <li class="selected">
            <?php
        echo "<a href='members.php?page=1'>".'«'."</a> ";?> 
        </li>
        <?
        for ($i=1; $i<=$total_pages; $i++) { 
                    echo "<li><a href='members.php?page=".$i."'>".$i."</a></li> "; 
        };
        ?>
        <li class="selected">
        <? 
        echo "<a href='members.php?page=$total_pages'>".'»'."</a> "; // Goto last page
        ?></li>
          </ul></div></td>
                </tr>
              </table>
            </td>
          </tr>
        </table>

上述代码一切正常,但我将如何显示回显“显示记录 #10 到 #11”等。

url 中的页面显示 tracking.php?page=12

非常感谢您的帮助

【问题讨论】:

    标签: php pagination


    【解决方案1】:

    你必须从 $_GET var 中存储页码

    计算很简单:

    $pageNr = (int)$_GET['pageNr']   // For example 3
    $from = $pageNr * $rowsPerPage;  // 3 * 10 = 30
    $to = $from + $rowsPerPage;      // 30 + 10 = 40
    /* Result: From page 30 to 40 */
    

    您也可以使用任何 3rd 方类或库,例如 斑马分页:http://stefangabos.ro/php-libraries/zebra-pagination/

    问候

    【讨论】:

    • 我遇到的问题是:第 1 页显示记录 ~1 到 ~10 第 2 页显示记录 ~11 到 ~21 第 3 页显示记录 ~22 到 ~32 第 4 页显示记录 ~33 到 ~43 页 #5 显示记录 ~44 到 ~47 (只显示 3 条记录 atm!)
    • 显示 1 到 10、11 到 20、21 到 30,最后一页使用 MOD 操作:TotalPages % $rowsPerPage。例如 47 mod 10 = 7
    • 对不起,我不明白
    • 对不起,我表现不佳。我的意思是:前 10 条记录是 1 到 10,后 10 条记录是 21 到 20,然后……直到最后一页。并且要知道最后一页记录,您只需将 mod 应用于总结果。如果总结果为 47 并且您有 10 条记录页.. 47 % 10 = 7. 您的最后一页有 7 条记录。
    • 但是我如何修改代码才能知道它何时在最后一页? if $_Get["page"] == $total_pages // IF Get page 等于 total pages 变量对最后一页的结果做不同的数学方程
    猜你喜欢
    • 1970-01-01
    • 2010-10-21
    • 2011-07-13
    • 2014-06-12
    • 1970-01-01
    • 2017-02-23
    • 1970-01-01
    • 2013-09-27
    • 1970-01-01
    相关资源
    最近更新 更多