2015-04-22 140 views
2

在我的管理面板的在线购物项目中我正在显示一个产品,它的代码是这样的。分页变量和其他变量冲突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> 

这个代码浏览器中显示这样

enter image description here

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

我的问题是当我不在页面1,然后单击它将更改按钮该产品的数据库中的图像和状态,但分页到第一页或说page = 0.它发生在所有页面,而不是第1页。我想留在同一页面。请给你的建议。任何帮助将不胜感激。

回答

1

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

注意:请考虑定义一个新的变量(具有更多的相对名称)来保存页面值的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(第一页)。

+0

当我在页面= 3时发生这种变化,如果我点击按钮,它将转到页面= 30 ...对于页面= 2它将转到页面= 20 ....页面由10或任何...请给我更多的帮助。 –

+0

我错过了这一行:'$ page = $ page * 10;'。我不得不说,使用'page'变量来保存这个值是不好的做法(语义原因)。我建议为此使用另一个变量名称,例如:'$ limit'。 ($ page/10)。'' –

+0

我不得不将它替换为if(isset($ _ REQUEST ['false'])。 ),如果(isset($ _ REQUEST ['true']))....现在我明白了....thanx为你的帮助... –