php - 分页变量和其他变量在php中有冲突

标签 php mysql pagination

在我的在线购物项目管理面板中,我正在展示一个产品,它的代码如下。

<!DOCTYPE html>
<html>
 <head>
<title></title>
</head>
<body>
<center>
<?php
include('config.php');
$query=mysql_query("select * from product_tbl");
    $totalrows=mysql_num_rows($query);
    if(isset($_REQUEST['page']))
    {
        $page=$_REQUEST['page'];
        echo "page=$page";
        $page=$page*10;
        $pagquery=mysql_query("select * from product_tbl limit $page,10");
    }         
    else
    {
        $page=0;
    $pagquery=mysql_query("select * from product_tbl limit 0,10");
    }
    echo "Product Table";
echo "<table border=1 width=100%>";
echo "<tr><th>";
echo "Prod ID";
echo "</th><th>";
echo "Cat ID";
echo "</th><th>";
echo "Com ID";
echo "</th><th>";
echo "Product Name";
echo "</th><th>";
echo "Product Price";
echo "</th><th>";
echo "Product Discount";
echo "</th><th>";
echo "Product Desc";
echo "</th><th>";
echo "Product Image";
echo "</th><th>";
echo "Status";
echo "</th></tr>";
    while($r=mysql_fetch_array($pagquery))
    {
       if($r['prod_status'] == 0) {
        //$sqlup="UPDATE product_tbl set prod_status=!prod_status where prod_id='".$r['prod_id']."'";
        $im='<a href="product.php?false='.$r["prod_id"].'"><img src="images/red.jpg" height="28" width="28"></a>';
    }
    else{
        $im='<a href="product.php?true='.$r["prod_id"].'"><img src="images/green.jpg" height="30" width="30"></a>';
    }
    if (isset($_REQUEST['false'])) {
        $updt=mysql_query("update product_tbl set prod_status=1 where prod_id='".$_REQUEST['false']."'");
        header('location:product.php?page='.$page);
    }
    if (isset($_REQUEST['true'])) {
        $updt=mysql_query("update product_tbl set prod_status=0 where prod_id='".$_REQUEST['true']."'");
        header('location:product.php?page='.$page);
    }
    echo "<tr><td><center>".$r['prod_id']."</center></td><td><center>".$r['cat_id']."</center></td><td><center>".$r['com_id']."</center></td><td><center>".$r['prod_name']."</center></td><td><center>".$r['prod_price']."</center></td><td><center>".$r['prod_discount']."</center></td><td><center>".$r['prod_desc']."</center></td><td><center><img src=".$r['prod_img']." height=100 width=100></center></td><td><center>".$im."</center></td></tr>";
    }
    $page=0;
    echo "<tr colspan=3>";
    for($i=0;$i<=$totalrows;$i+=10)
    {
        echo "<a href=product.php?page=".$page++.">  ".$page."</a>";

    }
    echo "</table>";
    echo "<br/>";
 ?>
 <br><br>
    <a href="backup_insert_prod.php"><input type="submit" value="Insert"></a>
    <a href="update_prod.php"><input type="submit" value="Update"></a>
    <a href="delete_prod.php"><input type="submit" value="Delete"></a>
</center>
</body>
</html>

这段代码在浏览器中显示如下

enter image description here

所有数据都来自数据库 MYSQL.in status column 我正在显示状态 on(1) 的绿色按钮和状态 off(0) 的红色按钮,它在图像标签中。 如果我点击绿色按钮,它将变为红色按钮,并在数据库中将状态更改为关闭(0),反之亦然......

我的问题是当我不在第 1 页并单击按钮时,它将更改该产品数据库中的图像和状态,但是,分页出现在第一页或说 page=0。它发生在所有页面而不是第 1 页。我想留在同一页上。请提出您的建议。我们将不胜感激。

最佳答案

您需要更新这些按钮的链接,以便它们在 URL 中包含当前的 page 参数。

注意:请考虑定义一个新变量(具有更多相对名称)来保存页面值的 x10 结果。

所以与其拥有:

$page=$_REQUEST['page'];
echo "page=$page";
$page=$page*10;

你会:

$page=$_REQUEST['page'];
echo "page=$page";
$start=$page*10;

当然,您必须更新查询(只需替换变量)。

之后您可以简单地执行以下操作:

替换:

   if($r['prod_status'] == 0) {
    //$sqlup="UPDATE product_tbl set prod_status=!prod_status where prod_id='".$r['prod_id']."'";
    $im='<a href="product.php?false='.$r["prod_id"].'"><img src="images/red.jpg" height="28" width="28"></a>';
}
else{
    $im='<a href="product.php?true='.$r["prod_id"].'"><img src="images/green.jpg" height="30" width="30"></a>';
}

与:

if($r['prod_status'] == 0) {
    //$sqlup="UPDATE product_tbl set prod_status=!prod_status where prod_id='".$r['prod_id']."'";
    $im='<a href="product.php?false='.$r["prod_id"].'&page='.$page.'"><img src="images/red.jpg" height="28" width="28"></a>';
}  else{
    $im='<a href="product.php?true='.$r["prod_id"].'&page='.$page.'"><img src="images/green.jpg" height="30" width="30"></a>';
}

如果您不想像我上面提到的那样更改变量的名称(“注意:”),您可以简单地编写 &page='.($page/10).'。但是,这是一种不好的做法,不推荐这样做。

它在第一页上工作的原因是因为您有以下情况:

if(isset($_REQUEST['page']))

因此,如果未设置 page 参数 - 您可以在代码中将其设置为 0(第一页)。

关于php - 分页变量和其他变量在php中有冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29789446/

相关文章:

mysql - 在 MySQL 查询的 WHERE 子句中使用列别名会产生错误

java - 在 intellij idea 中使用 JDBC/Mysql 连接器

api - CosmosDB 中的 NULL 连续 token

php - 计算某些数据时如何进行表格分页?

php为具有unicode名称的文件创建zip文件

php - MySQL 查询 : WHERE $val(3) IN $table(2, 6,3,8,9)。如何进行该查询

mysql - 使用 MySQL 查找通过的数量和百分比

javascript - 如何在照片库中添加分页?

php - 在 PHP 和 Javascript AJAX 中返回一个数组

php - mysql 按 id 将表 1 左连接到表 2,其中表 2 id 最新日期