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['id'];?></td> <td><?php echo $val[Price'];?></td> <td><?php echo $val['customer'];?></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['total']; mysqli_free_result($sqlcount); //查询完记得释放空间 //获取页数,判断是否符合要求 $page = intval($_GET['page']); 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와 mysql을 이용한 페이징의 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!