【求助】 php+mysql分页
想做个分页功能,在网上搜了点资料,写了这个分页页面,现在有个问题不知道怎么解决!!
整个页面代码如下,
<html>
<head>
<title>
日志审计
</title>
<link rel='stylesheet' type='text/css' href='../style/style.css'/>
</head>
<body>
<h1>日志查看</h1>
<center>
[<a href='#' target=main>日志查看</a>|<a href='log.php'>日志统计</a>]
<table border='1'>
<tr>
<form method="post" action="<?php echo $PHP_SELF;?>">
<table>
<tr><td colspan=2 style='color: #11334f;background: #ccc9d0;border-color: #7f7f7f;border-width: 1px;font-size: 8pt;border-radius:8px;-moz-border-radius: 8px;-webkit-border-radius: 8px;'>查询条件选择</td>
</tr>
<tr>
<td style='width:80;color: #11334f;background: #ccc9d0;border-color: #7f7f7f;border-width: 1px;font-size: 8pt;text-align: center;border-radius:8px;-moz-border-radius: 8px;-webkit-border-radius: 8px;'>主机</td><td align='center' style='width:80;color: #11334f;background: #FFFFFF;border-color: #7f7f7f;border-width: 1px;font-size: 8pt;text-align: center;border-radius:8px;-moz-border-radius: 8px;-webkit-border-radius: 8px; '><input type="text" name="ip" ></td>
</tr>
<tr>
<td style='width:80;color: #11334f;background:#ccc9d0;border-color: #7f7f7f;border-width: 1px;font-size: 8pt;text-align: center;border-radius:8px;-moz-border-radius: 8px;-webkit-border-radius: 8px;'>日期(MM-DD HH:MM:S)</td><td>从<input type="text" name="date_begin" >至<input type="text" name="date_end" ></td>
</tr>
<tr>
<td colspan=2 align='center' style='color: #11334f;background: #ccc9d0;border-color: #7f7f7f;border-width: 1px;font-size: 8pt;text-align: center;border-radius:8px;-moz-border-radius: 8px;-webkit-border-radius: 8px;'><input type='submit' value='执行'><input type='reset' value='取消'></td>
</tr>
</table>
</form>
</tr>
<hr size='5'>
<tr>
<?php
require_once('db_config.php');
$date_begin=$_POST['date_begin'];
$date_end =$_POST['date_end'];
$ip =$_POST['ip'];
if($ip != ''&& ($date_begin !='' && $date_end !='')){
$sql="select * from tbl_device where ip='".$ip."' and date between '".$date_begin."' and '".$date_end."'" ;
echo $sql;
}
else if($ip == ''&& ($date_begin !='' && $date_end !='')){
$sql="select * from tbl_device where date between '".$date_begin."' and '".$date_end."'" ;
echo $sql;
}
else if($ip != ''&& ($date_begin =='' && $date_end =='')){
$sql="select * from tbl_device where ip='".$ip."'";
echo $sql;
}else{
$sql="select * from tbl_device";
echo $sql;
}
$conn =mysql_connect($mysql_server_name,$mysql_username,$mysql_password);
$result=mysql_db_query($mysql_database,$sql,$conn);
//分页开始
$num1=mysql_num_rows($result);
$pagesize1 = 10;
$start1 = $_GET['start1'];
$flag1 = $_GET['flag1'];
//判断$start1是否有值
if ($start1 == null) {
$start1 = 0;
}
//判断完毕
//判断$flag1是否有值
if ($flag1 == null) {
$flag1 = 0;
}
//判断完毕
//判断标志位以确定$start1的值
if ($flag1 == 1 and $start1+$pagesize1 < $num1){
$start1 = $start1+$pagesize1;
}
if ($flag1 == 2 and $start1+$pagesize1 > 0){
$start1 = $start1-$pagesize1;
}
//判断完毕
$query_product_type = $sql." limit ".$start1.",". $pagesize1;
$result_product_type = mysql_query($query_product_type) or die("Query failed : " . mysql_error()); ?>
<?//页码开始
//最后一页START标识?>
<? if (($num1 % $pagesize1) != 0){
$lastpage1 = $num1 - ($num1 % $pagesize1);
}else{
$lastpage1 = $num1 - $pagesize1;
}
//代码结束
//判断页数以及当前页代码
$pagenum1 = ceil($num1 / $pagesize1);
if ($start1 == 0){
$nowpage1 = 1;
}else{
$nowpage1 = ($start1 / $pagesize1) + 1;
} ?>
<?//判断结束 ?>
<tr>
<td><hr color='#314DA5' size='1' noshade style='border-style: dotted; border-width: 1px; padding: 0'></td>
</tr>
<tr>
<td><p align='center'><span style='font-size: 9pt'>第<font color = '#FF0000'><b><? echo $nowpage1 ?></b></font>页 | 共<font color =
'#FF0000'><b><? echo $pagenum1 ?></b></font>页 | 共<font color = '#FF0000'><b><? echo $num1?></b></font>条记录</span></td>
</tr>
<tr>
<td><p align='center'>
<?//分页显示判断部分?>
<? if ($start1 == 0 and $pagesize1 < $num1){ ?>
<span style='font-size: 9pt'>【首页】【上页】<a href ='log_main.php?flag1=1&start1=<? echo $start1 ?>'>【下页】</a><a href ='log_main.php?start1=<? echo $lastpage1?>'>【末页】</a></span>
<? }elseif ($start1 >= $num1-$pagesize1 and $pagesize1 < $num1){ ?>
<span style='font-size: 9pt'><a href ='log_main.php?start1=0'>【首页】</a><a href ='log_main.php?flag1=2&start1=<? echo $start1 ?>'>【上页】</a>【下页】【末页】</span>
<? }elseif ($pagesize1 >= $num1 ){ ?>
<span style='font-size: 9pt'>【首页】【上页】【下页】【末页】</span>
<? }else{ ?>
<span style='font-size: 9pt'><a href ='log_main.php?start1=0'>【首页】</a><a href ='log_main.php?flag1=2&start1=<? echo $start1 ?>&'>【上页】</a><a href ='log_main.php?flag1=1&start1=<? echo $start1 ?>&ip=<? echo $_POST['ip']?>'>【下页】</a><a href ='log_main.php?start1=<? echo $lastpage1 ?> '>【末页】</a></span>
<?}?>
<?//分页代码判断结束
?>
</td>
</tr>
<?//页码结束
?>
<table>
<tr>
<td align='center' style='width:80;color: #11334f;background: #ccc9d0;border-color: #7f7f7f;border-width: 1px;font-size: 8pt;text-align: center;border-radius:8px;-moz-border-radius: 8px;-webkit-border-radius: 8px;'>时间</td><td align='center' style='width:80;color: #11334f;background: #ccc9d0;border-color: #7f7f7f;border-width: 1px;font-size: 8pt;text-align: center;border-radius:8px;-moz-border-radius: 8px;-webkit-border-radius: 8px;'>设备</td><td align='center' style='width:80;color: #11334f;background: #ccc9d0;border-color: #7f7f7f;border-width: 1px;font-size: 8pt;text-align: center;border-radius:8px;-moz-border-radius: 8px;-webkit-border-radius: 8px;'>类型</td><td align='center' style='width:400; color: #11334f;background: #ccc9d0;border-color: #7f7f7f;border-width: 1px;font-size: 8pt;text-align: center;border-radius:8px;-moz-border-radius: 8px;-webkit-border-radius: 8px;'>动作</td>
</tr>
<? while($row=mysql_fetch_array($result_product_type)){?>
<tr>
<td align='center' style='width:80;color: #11334f;background: #FFFFFF;border-color: #7f7f7f;border-width: 1px;font-size: 8pt;text-align: center;border-radius:8px;-moz-border-radius: 8px;-webkit-border-radius: 8px;'><? echo $row['date']?></td>
<td align='center' style='width:80;color: #11334f;background: #FFFFFF;border-color: #7f7f7f;border-width: 1px;font-size: 8pt;text-align: center;border-radius:8px;-moz-border-radius: 8px;-webkit-border-radius: 8px;'><? echo $row['ip']?></td>
<td align='center' style='width:80;color: #11334f;background: #FFFFFF;border-color: #7f7f7f;border-width: 1px;font-size: 8pt;text-align: center;border-radius:8px;-moz-border-radius: 8px;-webkit-border-radius: 8px;'><? echo $row['type']?></td>
<td align='center' style='color: #11334f;background: #FFFFFF;border-color: #7f7f7f;border-width: 1px;font-size: 8pt;text-align: center;border-radius:8px;-moz-border-radius: 8px;-webkit-border-radius: 8px;'><? echo $row['descon']?></td>
</tr>
<?}?>
</table>
</tr>
</table>
<?
mysql_free_result($result);
mysql_free_result($result_product_type);
// 分页结束
mysql_close($conn);
?>
</center>
</body>
</html> ;
才接触php 不到3天,这个页面因为每次自己跳转自己的时候都会重新生成sql,所以每次点下一页,或者上一页的时候,遍历的都是所有结果,而并不是查询后的结果,哪位大大给指条明路!!
[
本帖最后由 不看天 于 2009-7-28 17:26 编辑 ]