PHP는 간단한 도서 대출 시스템의 홈페이지 페이징 기능을 개발합니다.
메인 페이지가 완성된 후 데이터베이스 데이터를 SQL 문을 통해 표시해야 합니다.
여기에 표시하려면 페이징 기능을 사용해야 합니다. 결국 첫 페이지에 표시되는 수는 제한되어 있습니다.
각 페이지에 표시할 데이터를 5개로 설정했습니다.
$pagesize=5;
ID를 얻으려면 쿼리한 책 제목 카테고리 디렉토리를 역순으로 정렬해야 합니다. 중국어를 인코딩된 형식으로 변환하려면 urldecode() 함수가 필요합니다.
<?php if(!urldecode($_GET['proid'])){ //urldecode()函数将 URL 编码后字符串还原成未编码的样子。编码使用 %## 的格式 $SQL ="SELECT * FROM yx_books order by id desc"; //倒序排列 }else{ $SQL ="SELECT * FROM yx_books where type='".urldecode($_GET['proid'])."'"; //将查询出来的书目类别中文字转换为编码形式 } ?>
쿼리된 데이터의 총 개수를 가져와 총 페이지 수를 계산한 다음 현재 페이지를 판단합니다. 현재 페이지가 첫 번째 페이지보다 적으면 첫 번째 페이지가 표시됩니다. 총 페이지 수보다 크면 총 페이지 수가 표시됩니다.
각 페이지에 표시할 데이터 조각을 결정하세요.
<?php $rs=mysqli_query($link,$sql); $recordcount=mysqli_num_rows($rs); //输出查询的总数 //mysql_num_rows() 返回结果集中行的数目。此命令仅对 SELECT 语句有效。 $pagecount=($recordcount-1)/$pagesize+1; //计算总页数 $pagecount=(int)$pagecount; $pageno=empty($_GET["pageno"])?'':$_GET["pageno"]; //当前页 if($pageno=="") //当前页为空时显示第一页 { $pageno=1; } if($pageno<1) //当前页小于第一页时显示第一页 { $pageno=1; } if($pageno>$pagecount) //当前页数大于总页数时显示总页数 { $pageno=$pagecount; } $startno=($pageno-1)*$pagesize; //每页从第几条数据开始显示 ?>
SELECT 데이터베이스의 문을 쿼리하여 루프로 표시합니다.
<?php if(!urldecode($_GET["proid"])){ $SQL ="SELECT * FROM yx_books order by id desc limit $startno,$pagesize"; }else{ $SQL ="SELECT * FROM yx_books where type='".urldecode($_GET['proid'])."' order by id desc limit $startno,$pagesize"; } $rs=mysqli_query($link,$sql); ?> <?php if(!empty($rs)){ while($rows=mysqli_fetch_array($rs)) { ?> <tr> <td height="30" align="center" bgcolor="#FFFFFF"><?php echo $rows["id"];?></td> <td align="center" bgcolor="#FFFFFF"><?php echo $rows["name"];?></td> <td align="center" bgcolor="#FFFFFF"><?php echo $rows["price"];?></td> <td align="center" bgcolor="#FFFFFF"><?php echo $rows["uploadtime"];?></td> <td align="center" bgcolor="#FFFFFF"><?php echo $rows["type"];?></td> <td align="center" bgcolor="#FFFFFF"><?php echo $rows["leave_number"];?></td> <td align="center" bgcolor="#FFFFFF" class="line2"></td> </tr> <?php } } ?>
마지막으로 홈페이지, 이전 페이지, 다음 페이지, 마지막 페이지를 클릭하는 기능이 표시됩니다.
현재 페이지가 첫 페이지인 경우 홈 페이지와 이전 페이지만 표시됩니다.
현재 페이지가 전체 페이지 수일 경우, 홈페이지와 이전 페이지가 링크로 표시됩니다.
나머지는 일반 추가링크로 표시됩니다
<?php if($pageno==1) { ?> 首页 | 上一页 | <?php if($pageno+1<= $pagecount) { ?> <a href="index.php?proid=<?php echo empty($_GET['proid']) ? '' : urlencode($_GET['proid']); ?>&pageno=<?php echo $pageno + 1 ?>">下一页</a> | <a href="index.php?proid=<?php echo empty($_GET['proid']) ? '' : urlencode($_GET['proid']); ?>&pageno=<?php echo $pagecount ?>">末页</a> <?php } } else if($pageno==$pagecount) { ?> <a href="index.php?proid=<?php echo urlencode($_GET['proid']);?>&pageno=1">首页</a> | <a href="index.php?proid=<?php echo urlencode($_GET['proid']);?>&pageno=<?php echo $pageno-1?>">上一页</a> | 下一页 | 末页 <?php } else { ?> <a href="index.php?proid=<?php echo urlencode($_GET['proid']);?>&pageno=1">首页</a> | <a href="index.php?proid=<?php echo urlencode($_GET['proid']);?>&pageno=<?php echo $pageno-1?>">上一页</a> | <a href="index.php?proid=<?php echo urlencode($_GET["proid"]);?>&pageno=<?php echo $pageno+1?>" class="forumRowHighlight">下一页</a> | <a href="?pageno=<?php echo $pagecount?>">末页</a> <?php } ?> 页次:<?php echo $pageno ?>/<?php echo $pagecount ?>页 共有<?php echo $recordcount?>条信息