Php 下一页的分页应为2,但为0

Php 下一页的分页应为2,但为0,php,mysql,Php,Mysql,第一页应为1但其值为-1,下一页应为2但其值为0 我怎样才能做到这一点?我试图编辑$page,但当我编辑时,if/else变为wierd 我添加了整个代码 有多个if语句 $result = mysqli_query($con,"$resultt"); $rec_limit = 19; $row = mysqli_fetch_array($result); $rec_count = $row[0]; if

第一页应为1但其值为-1,下一页应为2但其值为0

我怎样才能做到这一点?我试图编辑$page,但当我编辑时,if/else变为wierd

我添加了整个代码

有多个if语句

         $result = mysqli_query($con,"$resultt");
         $rec_limit = 19;
         $row = mysqli_fetch_array($result);
         $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);

         $resultt .= "LIMIT $offset, $rec_limit";
         $sql = $resultt;

         $retval = mysqli_query( $con, "$resultt" );

         if( $page > 0 )
         {
            $last = $page - 1;
            echo "<a href=\"$_PHP_SELF?page=$last\">Last 10 Records</a> |";
            echo "<a href=\"$_PHP_SELF?page=$page\">Next 10 Records</a>";
         }

         else if( $page == 0 )
         {
            echo "<a href=\"$_PHP_SELF?page=$page\">Next 10 Records</a>";
            }

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

while($row = mysqli_fetch_array($retval, MYSQL_ASSOC))
{

}

$\u GET是一个类似于$行的数组

要访问数组键,请始终使用[]

将您的get更改为$\u get['page']

更好的是:

$page = isset($_GET['page']) ? intval($_GET['page']) : 1;
是页面设置,然后将值转换为int,因为您不知道输入的是什么。 如果未设置,则选择第1页

顺便说一句,结构如下:

$resultt = "LIMIT $offset, $rec_limit";
可能/将在您的主页中导致sql注入错误! 永远不要用变量构建sql!
改用参数

您应该更改部分代码以使其正常工作$_GET['page']应该为您提供查询的页码本身,所以不要试图操纵它

$sql = "SELECT * FROM users WHERE country='$okc' AND state='$oks'"
$rec_limit = 10;
$result = mysqli_query( $con, $sql );
$row = mysqli_fetch_array( $result );
$rec_count = $row[0];
$left_rec = $rec_count - ( $rec_limit * $page );


$page = isset($_GET['page']) ? intval($_GET['page']) : 1;
$offset = $rec_limit * ( $page - 1 ) ;

$sql.= " LIMIT $rec_limit OFFSET $offset";
$result = mysqli_query( $con, $sql );

$row = mysqli_fetch_array( $result );

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

while( $row = mysqli_fetch_array( $result, MYSQL_ASSOC ) ){

    // use $row to echo row contents ...

}

如果这是php,您可能想将$_GET{'page'}更改为$_GET['page']您能在这里添加一个解释吗?很抱歉,我会添加一些。当我这样做时,$next和$last出错,$row似乎不起作用,因为它应该更新我的答案。看一看。记住,软件不是人们为你编写代码的地方。在这里,你可能只是得到了想法,自己动手做,但在编辑代码时仍然会遇到同样的问题
$sql = "SELECT * FROM users WHERE country='$okc' AND state='$oks'"
$rec_limit = 10;
$result = mysqli_query( $con, $sql );
$row = mysqli_fetch_array( $result );
$rec_count = $row[0];
$left_rec = $rec_count - ( $rec_limit * $page );


$page = isset($_GET['page']) ? intval($_GET['page']) : 1;
$offset = $rec_limit * ( $page - 1 ) ;

$sql.= " LIMIT $rec_limit OFFSET $offset";
$result = mysqli_query( $con, $sql );

$row = mysqli_fetch_array( $result );

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

while( $row = mysqli_fetch_array( $result, MYSQL_ASSOC ) ){

    // use $row to echo row contents ...

}