>  기사  >  백엔드 개발  >  PHP 검색 및 페이징 구현 사례 분석

PHP 검색 및 페이징 구현 사례 분석

墨辰丷
墨辰丷원래의
2018-06-01 09:50:211609검색

이 글은 PHP 검색과 페이징을 구현하여 많은 브라우저의 페이징 문제를 해결합니다. 이 글을 읽은 친구들이 이 글을 읽은 후 페이징 표시의 원리와 구현 방법을 이해할 수 있도록 노력합니다.

페이지 매김 표시는 많은 양의 데이터를 탐색하는 방법입니다. 초보자들이 이 문제에 대해 혼동하는 경우가 많기 때문에 이 문제를 자세히 설명하기 위해 특별히 이 글을 썼고, 이 글을 읽은 친구들이 이 글을 읽은 후 페이징 표시의 원리와 구현 방법을 이해할 수 있도록 노력했습니다.

모든 샘플 코드는 PHP로 작성되었습니다.

페이징 표시란 데이터베이스에 있는 결과 세트를 인위적으로 여러 섹션으로 나누어 표시하는 것을 의미합니다.

다음 코드를 자세히 읽어보시고 직접 디버그하고 실행해 보시는 것이 가장 좋습니다.

$wherelist=array();
$urlist=array();
if(!empty($_GET['title']))
{
$wherelist[]=" title like '%".$_GET['title']."%'";
$urllist[]="title=".$_GET['title'];
 
}
if(!empty($_GET['keywords']))
{
$wherelist[]=" keywords like '%".$_GET['keywords']."%'";
$urllist[]="keywords=".$_GET['keywords'];
}if(!empty($_GET['author']))
{
$wherelist[]=" author like '%".$_GET['author']."%'";
$urllist[]="author=".$_GET['author'];
}
$where="";
if(count($wherelist)>0)
{
$where=" where ".implode(' and ',$wherelist);
$url='&'.implode('&',$urllist);
}
//分页的实现原理
//1.获取数据表中总记录数
$sql="select count(*) from news $where ";
$result=mysql_query($sql);
$totalnum=mysql_num_rows($result);
//每页显示条数
$pagesize=5;
//总共有几页
$maxpage=ceil($totalnum/$pagesize);
$page=isset($_GET['page'])?$_GET['page']:1;
if($page <1)
{
$page=1;
}
if($page>$maxpage)
{
$page=$maxpage;
}
$limit=" limit ".($page-1)*$pagesize.",$pagesize";
$sql1="select * from news {$where} {$limit}";
 
//$sql1="select * from news {$where} {$limit}";
$res=mysql_query($sql1);
 
?>
<form action="searchpage.php" method="get">
标题:<input type="text" name="title" value="<?php echo $_GET[&#39;title&#39;]?>" size="8">
关键字<input type="text" name="keywords" value="<?php echo $_GET[&#39;keywords&#39;]?>" size="8">
作者:<input type="text" name="author" value="<?php echo $_GET[&#39;author&#39;]?>" size="8">
 <input type="button" value="查看全部" onclick="window.location=&#39;searchpage.php&#39;">
 <input type="submit" value="搜索">
</form>
 
<table border="1" width="1000" align="center">
 <tr>
 <td>编号</td>
 <td>标题</td>
 <td>关键字</td>
 <td>作者</td>
 <td>日期</td>
 <td>内容</td>
 </tr>
<?php while($row= mysql_fetch_assoc($res)){?>
<tr>
 <td><?php echo $row[&#39;id&#39;] ?></td>
 <td><?php echo $row[&#39;title&#39;] ?></td>
 <td><?php echo $row[&#39;keywords&#39;] ?></td>
 <td><?php echo $row[&#39;author&#39;] ?></td>
 <td><?php echo date("Y-m-d H:i:s",$row[&#39;addtime&#39;]) ?></td>
 <td><?php echo $row[&#39;content&#39;] ?></td>
 </tr>
<?php }?>
<tr>
 <td colspan="6">
<?php
 echo " 当前{$page}/{$maxpage}页 共{$totalnum}条";
echo " <a href=&#39;searchpage.php?page=1{$url}&#39;>首页</a> ";
echo "<a href=&#39;searchpage.php?page=".($page-1)."{$url}&#39;>上一页</a>";
echo "<a href=&#39;searchpage.php?page=".($page+1)."{$url}&#39;>下一页</a>";
echo " <a href=&#39;searchpage.php?page={$maxpage}{$url}&#39;>尾页</a> ";
 
?>
</td>
 </tr>
</table>

요약: 위 내용은 이 글의 전체 내용입니다. 모든 분들의 공부에 도움이 되었으면 좋겠습니다.

관련 권장 사항:

PHP 프레임워크에서 트랜잭션을 실행하는 방법을 생각해 보세요.

PHP+MySQL은 mysql_num_rows를 사용하여 퍼지 질의서 정보 기능을 구현합니다.

php 컬은 json 개체를 가져와서 변환합니다. 배열로 배열 Method

위 내용은 PHP 검색 및 페이징 구현 사례 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.