Home  >  Article  >  Backend Development  >  怎么把查询和分页一起实现

怎么把查询和分页一起实现

WBOY
WBOYOriginal
2016-06-23 13:59:351243browse

查询 和 分页都能实现 就是不知道怎么把两个合在一起 
代码如下

$page=isset($_GET['page'])?$_GET['page']:1; $pagesize=20; $sql="SELECT count(*) from khxx";$res=mysql_query($sql);$maxrows=mysql_result($res,0,0);$maxpages=ceil($maxrows/$pagesize);if($page>$maxpages){	$page=$maxpages;}if($page<1){	$page=1;}$limit=" limit ".(($page-1)*$pagesize).",{$pagesize}";if (!empty($_GET[keys])) {			$keys=$_GET['keys'];			$ww="`dates` like '%".$keys."%' or `area` like '%".$keys."%' ;			$wh="where {$ww}";		}

		<form action="khall.php" method="get">			<input class="inp" type="text" name="keys"/ >			<input class="sub" type="submit" value="查询"/>		</form>			</tr>			<tr>			<?php echo "当前{$page}/{$maxpages}页 共计{$maxrows}条";					  echo "<a href='khall.php?page=1'>首页</a>";					  echo "<a href='khall.php?page=".($page-1)."'>上一页</a>";					  echo "<a href='khall.php?page=".($page+1)."'>下一页</a>";					  echo "<a href='khall.php?page={$maxpages}'>末页</a>";				?>                       </tr>

<?php						$sql="SELECT * FROM `khxx` {$wh} order by id desc {$limit}";			$query=mysql_query($sql);			while ($rs=mysql_fetch_array($query)){		?>


回复讨论(解决方案)

还要怎么整合?
sql查询的就是当前页的内容。也就是说,你只需要把当前页查询出来的内容展示出来,然后编好页码就行了。

<?php$page=isset($_GET['page'])?$_GET['page']:1; $pagesize=20; if (!empty($_GET[keys])) {   $keys=$_GET['keys'];   $ww="`dates` like '%".$keys."%' or `area` like '%".$keys."%' ";   $wh="where {$ww}";}else{    $wh = ""}$sql="SELECT count(*) from khxx ".$wh; // 计算总数时加入搜索条件 $res=mysql_query($sql);$maxrows=mysql_result($res,0,0);$maxpages=ceil($maxrows/$pagesize);if($page>$maxpages){    $page=$maxpages;}if($page<1){    $page=1;}$limit=" limit ".(($page-1)*$pagesize).",{$pagesize}";// 查询当前页记录 $sql="SELECT * FROM `khxx` {$wh} order by id desc {$limit}";$query=mysql_query($sql);while ($rs=mysql_fetch_array($query)){?>

还要怎么整合?
sql查询的就是当前页的内容。也就是说,你只需要把当前页查询出来的内容展示出来,然后编好页码就行了。
是我没说清楚
我写的有个问题就是 点下一页后 当前的查询状态就消失了 想问下 怎么写才可以把查询加入到分页中 

<?php$page=isset($_GET['page'])?$_GET['page']:1; $pagesize=20; if (!empty($_GET[keys])) {   $keys=$_GET['keys'];   $ww="`dates` like '%".$keys."%' or `area` like '%".$keys."%' ";   $wh="where {$ww}";}else{    $wh = ""}$sql="SELECT count(*) from khxx ".$wh; // 计算总数时加入搜索条件 $res=mysql_query($sql);$maxrows=mysql_result($res,0,0);$maxpages=ceil($maxrows/$pagesize);if($page>$maxpages){    $page=$maxpages;}if($page<1){    $page=1;}$limit=" limit ".(($page-1)*$pagesize).",{$pagesize}";// 查询当前页记录 $sql="SELECT * FROM `khxx` {$wh} order by id desc {$limit}";$query=mysql_query($sql);while ($rs=mysql_fetch_array($query)){?>

效果和我写的差不多 
我写的有个问题就是 点下一页后 当前的查询状态就消失了 想问下 怎么写才可以把查询加入到分页

你得把搜索的字段 写进URL里面  然后传参 那样才行吧

你得把搜索的字段 写进URL里面  然后传参 那样才行吧
就是不知道怎么写 没思路

你的翻页条中没有附加查询条件


你得把搜索的字段 写进URL里面  然后传参 那样才行吧
就是不知道怎么写 没思路

echo "<a href='khall.php?keys=$_GET['keys']&page=".($page-1)."'>上一页</a>";

你把分页URL上都加上 这个 查询字段  应该就可以了


<?php$page=isset($_GET['page'])?$_GET['page']:1; $pagesize=20; if (!empty($_GET[keys])) {   $keys=$_GET['keys'];   $ww="`dates` like '%".$keys."%' or `area` like '%".$keys."%' ";   $wh="where {$ww}";}else{    $wh = ""}$sql="SELECT count(*) from khxx ".$wh; // 计算总数时加入搜索条件 $res=mysql_query($sql);$maxrows=mysql_result($res,0,0);$maxpages=ceil($maxrows/$pagesize);if($page>$maxpages){    $page=$maxpages;}if($page<1){    $page=1;}$limit=" limit ".(($page-1)*$pagesize).",{$pagesize}";// 查询当前页记录 $sql="SELECT * FROM `khxx` {$wh} order by id desc {$limit}";$query=mysql_query($sql);while ($rs=mysql_fetch_array($query)){?>

效果和我写的差不多 
我写的有个问题就是 点下一页后 当前的查询状态就消失了 想问下 怎么写才可以把查询加入到分页

那你需要在翻?的url中加入条件参数,例如下一页需要这样写
echo "下一页";

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn