在php中的sql获取行的分页

时间:2016-04-12 06:48:15

标签: php

我想在sql fetched行上使用分页。我正在使用此代码:

     <?php
      $rec_limit = 4;

     $sql = "SELECT count(id) FROM wp_wct8 ";
     $retval = mysql_query( $sql);
     if(! $retval ) {
        die('Could not get data: ' . mysql_error());
     }
     $row = mysql_fetch_array($retval, MYSQL_NUM );
     $rec_count = $row[0];
    if( isset($_GET{'page'} ) ) {
        $page = $_GET{'page'} + 1;
        $offset = $rec_limit * $page ;
     }else {
        $page = 0;
        $offset = 0;
     }



     $left_rec = $rec_count - ($page * $rec_limit);


       $sql = "SELECT id, name, insurance ". 
        "FROM wp_wct8 ".
        "LIMIT $offset, $rec_limit";

     $retval = mysql_query( $sql);
     if(! $retval ) {
        die('Could not get data: ' . mysql_error());
     }

    while ($b = mysql_fetch_array($retval)){
    echo $b['name'];
    echo $b['insurance'];

    }
    if( $page > 0 ) {
        $last = $page - 2;
        echo "<a href = \"$_PHP_SELF?page = $last\">Last 4 Records</a> |";
        echo "<a href = \"$_PHP_SELF?page = $page\">Next 4 Records</a>";
     }else if( $page == 0 ) {
        echo "<a href = \"$_PHP_SELF?page = $page\">Next 4 Records</a>";
     }else if( $left_rec < $rec_limit ) {
        $last = $page - 2;
        echo "<a href = \"$_PHP_SELF?page = $last\">Last 4 Records</a>";
     }
      ?>

但是分页不起作用...当我点击显示接下来的4条记录时,它显示的是相同的记录而不是下一条...请帮助...提前感谢

1 个答案:

答案 0 :(得分:0)

我不建议您将此代码放在网上,因为它很容易受到SQL注入攻击。 (而不是使用预编程语句与PDO,或者至少使用SQL查询中的输入。)

我认为错误是链接中的空格。所以尝试删除空格,例如echo "<a href = \"$_PHP_SELF?page=$last\">Last 4 Records</a> |";