php 分页变量和其他变量冲突

pagination variable and other variables are conflict in php

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

<!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>

并且此代码在浏览器中显示如下

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

我的问题是当我不在第 1 页并单击按钮时,它将更改该产品数据库中的图像和状态,但是,分页出现在第一页或说 page=0.it 发生在所有页面而不是页面 1.i 希望保持原样 page.please 提供您的 suggestion.any 帮助将不胜感激。

您需要更新这些按钮的链接,以便它们在 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>';
}

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

它出现在第一页的原因是因为您有以下情况:

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

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