>백엔드 개발 >PHP 튜토리얼 >php와 mysql을 이용한 페이징의 예

php와 mysql을 이용한 페이징의 예

黄舟
黄舟원래의
2017-11-11 10:15:251373검색

PHP 페이징 구현이 효과를 얻으려면 데이터베이스의 데이터와 협력해야 한다는 것을 모두 알고 있습니다. 이전 기사에서도 간략하게 소개했는데, php+mysql이 페이징 효과를 어떻게 달성할까요? 오늘 당신과 함께 살펴보세요!

mysql에서 페이지에 데이터를 표시하는 명령문은 5,1로 제한됩니다. 5는 검색 시작 위치를 나타내고, 1은 1페이지를 표시함을 의미합니다.

그래서 PHP에서는 이전 페이지를 구현하려면 데이터 페이지를 전달해야 합니다. 다음 페이지까지 페이지를 매길 수 있습니다.

3단계로 이해할 수 있습니다:

1) 데이터베이스에 연결하여 프런트 엔드에 데이터 표시;

2) 프런트 엔드에서 페이지(페이지 번호 값) 전달 1 이상, 총 페이지 수 이하의 페이지 번호를 여기에서 판단해야 합니다.

3) PHP는 페이지 번호를 획득하고 판단하며 해당하는 작업을 수행합니다. + 동작을 수행하고 한계값을 변경합니다.

ps: 데이터는 데이터베이스에 구축되어 있고 여기서는 PHP가 연결만 담당합니다.

먼저 데이터베이스의 정보를 프런트 엔드에 표시하는 방법을 알아야 합니다.

php 파일:

//连接数据库:
$link = mysqli_connect("localhost","root","123456","test") or die ("错误:连接数据库失败");   //一次为:服务器,用户名,密码,库名
mysqli_query($link,"set names 'utf8'"); //输出的编码方式,这句一定要有。

//连接表:
$sql = "SELECT * FROM wordspace WHERE sa_id IS NOT NULL";   //mysql查询语句
$sqlcount = mysqli_query($link,$sql) or die ("查询失败");  //将其输出.
$info = mysqli_fetch_ array($sqlcount);
while($info){
	$result[ ] = $info;  //传值给一个数组
}

mysqli_free_result($info);  //查询完后要释放该表
mysqli_close($link);  //关闭数据库

데이터베이스에서 방금 얻은 배열을 프런트 엔드에 표시합니다.

<table border="1">
	<tr>
		<td>id</td>
		<td>Price</td>
		<td>customer</td>
	</tr>
<!---用php将数据显示-->
	<?php foreach($result as $val)   {?>
	<tr>
		<td><?php echo $val[&#39;id&#39;];?></td>
		<td><?php echo $val[Price&#39;];?></td>
		<td><?php echo $val[&#39;customer&#39;];?></td>
	</tr>
	<?php  }  ?>
</table>

테이블 데이터를 표시한 후 이를 기반으로 페이징을 구현합니다.

이전 페이지와 다음 페이지 연결을 추가하고 여기에서 전달된 값이 요구 사항을 충족하도록 판단합니다.

<!--显示首页和上一页的条件-->
<?php if($page > 1)  {?>        
	<a href="?page=1">首页</a>
	<a href="?page=<?php echo $prevpage;">上一页</a>
<?php  }  ?>

<!--显示下一页和尾页的条件-->
<?php if($page < $ numpages)  {?>
	<a href="?page=<?php echo $nextpage;?">下一页</a>
	<a href="?page=<?php echo $numpages;?>尾页
<?php  }  ?>

PHP에서 데이터베이스에 연결하는 언어를 변경해야 합니다.

//获取总记录数:
$sqls  = "SELECT COUNT(*)  as totalFROM wordspace where sa_id  IS NOT NULL";
$sqlcount = mysqli_query($link,$sqls) od die("查询失败");
$pagecount  = mysqli_fetch_array($sqlcount);
$pagecount = $pagecount[&#39;total&#39;];
mysqli_free_result($sqlcount);   //查询完记得释放空间
//获取页数,判断是否符合要求
$page = intval($_GET[&#39;page&#39;]);
if($page <=0) {$page= 1;}
elseif($page > $pagecount){ $page = $pagecount; }

//定义每页显示的页数:
$pageshow = 5;
$pagesize = ($page-1) * $pageshow;
//计算总页数:
$numpages = ceil($pagecount/$pageshow);   //向上取整;

//连接要显示的数据库
$sql = "SELECT * FROM wordcpace where IS NOT NULL limit $pagesize,$pageshow";
$sqlinfo = mysqli_query($sql);
$pide = mysqli_fetch_array($sqlinfo)or die("分页查询失败");
while($pide){
	$result[ ] = $pide;
}
$prevpage = $page - 1;
$nextpage = $page + 1;
mysqli_free_result($sqlinfo);
musqli_close($link);  //最后要关闭数据库

요약:

이 내용을 읽고 나면 PHP 페이징이 데이터베이스에서 데이터를 추출하여 표시한 다음 값 전달 및 판단과 같은 일련의 작업을 수행하는 것이 매우 간단하다고 생각하십니까? 문제입니다. 도움이 되길 바랍니다.

관련 권장 사항:

PHP 페이징 클래스 구현


PHP 페이징 구현 원리


페이징 효과를 얻기 위해 PHP를 사용하는 예


PHP 페이지 매김 코드 작성 방법

위 내용은 php와 mysql을 이용한 페이징의 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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