Maison  >  Article  >  développement back-end  >  怎么把查询和分页一起实现

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

WBOY
WBOYoriginal
2016-06-23 13:59:351241parcourir

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

$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 "下一页";

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn