Php 下一页的分页应为2,但为0
第一页应为1但其值为-1,下一页应为2但其值为0 我怎样才能做到这一点?我试图编辑$page,但当我编辑时,if/else变为wierd 我添加了整个代码 有多个if语句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
$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 ...
}