[原创]关于分页显示中页面间传递变量问题 |
目的及问题环境:我做显示客户订单部分,有两个主要页面 page2.php,xd.php,其中page2.php里显示的是数据库表的部分字段,并且在每行末有个链接“详细”,单击“详细”后打开xd.php这页面里是我画的表,里边完整输出了数据表里所有的记录。至此显示客户订单完毕。
注:page2.php分页显示,每页10条记录。
page2.php的主要代码:
<?
$connect=mysql_connect("localhost","root","adminsa");
mysql_select_db("test",$connect);
$page_num=10;
if(!$page_no)
{
$page_no=1;
}
$start_num=$page_num*($page_no-1);
$sql="SELECT * FROM biaodan limit $start_num,$page_num";
$result=mysql_query($sql);
$rows=mysql_num_rows($result);
for($i=0;$i<$rows;$i++)
{
@mysql_data_seek($result,$i);
$data=mysql_fetch_array($result);
?>
<tr>
<td align="center" height="19"><?echo $data[user]?></td>
<td align="center"><?echo $data[comp]?></td>
<td align="center"><?echo $data[tel]?></td>
<td align="center"><?echo $data[pro]?> <a href="xd.PHP?id=<? echo"$i";?>">详细</a></td>
</tr>
<?
}
?>
</table>
<?
echo " <a href='page2.php?page_no=" . ($page_no-1) . "'>上一页</a> <a href='page2.php?page_no= " . ($page_no+1) . "'>下一页</a>";
?>
大家不难看出来,我的关键变量$i永远小于等于$page_num的值10因为我的每页最多10条数据。
xd.php主要代码:
<?
$connect=mysql_connect("localhost","root","adminsa");
mysql_select_db("test",$connect);
$sql="SELECT * FROM biaodan where id=$id";
$result=mysql_query($sql);
$data=mysql_fetch_array($result);
?>
大家看这里在页面间传递的关键变量是$sql="SELECT * FROM biaodan where id=$id";中的$id。这两段代码看起来没有错误、其实当我单击了page2.php里每行记录行尾的“详细”链接打开xd.php页面显示此记录的详细数据时,就会发现不管你点击的第几页的第n(n小于等于10肯定)条记录行尾的“详细”链接,都在xd.php页面显示的是所有数据表记录的第n条记录详细内容。也就是第一页的第n条记录。只有把<td align="center"><?echo $data[pro]?> <a href="xd.PHP?id=<? echo"$i";?>">详细</a>行的id值设置成(当前页码减1)乘以每页显示记录数再加$i,即($page_no-1)*$page_num+$i;才可以避免此错误,可是我不知道用php语法如何表示上边这行。
|
|
|