웹 개발은 미래의 분산 프로그램 개발의 주류입니다. 일반적으로 웹 개발에는 데이터베이스를 다루는 작업이 포함되며 일반적으로 페이지 단위로 읽는 것이 편리하고 효율적입니다. 따라서 페이징 프로그램 작성은 웹 개발의 중요한 부분입니다. 여기서는 페이징 프로그램 작성에 대해 함께 공부하겠습니다.
1. 페이징 프로그램의 원리
페이징 프로그램에는 각 페이지에 표시되는 레코드 수($pagesize)와 현재 페이지($page)라는 두 가지 매우 중요한 매개변수가 있습니다. 이 두 매개변수를 사용하면 MySql 데이터베이스를 데이터 소스로 쉽게 작성할 수 있습니다. mysql에서는 테이블의 특정 내용을 제거하려면 T-SQL 문을 사용할 수 있습니다. * 테이블 제한 오프셋에서 달성할 행. 여기서 offset은 레코드 오프셋이고 계산 방법은 offset=$pagesize*($page-1)이며 행은 표시할 레코드 수, 여기서는 $page입니다. 즉, select * from tablelimit 10,10 문은 테이블의 11번째 레코드부터 시작하여 20개의 레코드를 검색한다는 의미입니다.
2. 메인코드 분석
$pagesize=10; //각 페이지에 표시되는 레코드 수 설정
$conn=mysql_connect("localhost","root",""); //데이터베이스에 연결
$rs=mysql_query("select count(*) from tb_product",$conn); //총 레코드 수 가져오기 $rs
$myrow = mysql_fetch_array($rs);
$numrows=$myrow[0];
//전체 페이지 수 계산
$pages=intval($numrows/$pagesize)
//페이지 번호 설정 판단
if (isset($_GET['page']));
$page=intval($_GET['페이지']);
}
또 다른{
$page=1; //그렇지 않으면 첫 페이지로 설정
}
3. 사용 사례 테이블 myTable 생성
테이블 myTable 생성(id int NOT NULL auto_increment, news_title varchar(50), news_cont text, add_time datetime, PRIMARY KEY(id))
4. 전체 코드
<html>
<머리>
<title>php 페이징 예시</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</머리>
<몸>
<?php
$conn=mysql_connect("localhost","루트","");
//각 페이지에 표시되는 레코드 수 설정 $pagesize=1;
mysql_select_db("mydata",$conn);
//총 레코드 수 $rs를 가져오고 $rs=mysql_query("select count(*) from tb_product",$conn)를 사용하여 총 페이지 수를 계산합니다.
$myrow = mysql_fetch_array($rs);
$numrows=$myrow[0];
//총 페이지 수 계산
$pages=intval($numrows/$pagesize);
if ($numrows%$pagesize)
$페이지++;
//페이지 수 설정 if (isset($_GET['page'])){
$page=intval($_GET['페이지']);
}
또 다른{
//첫 번째 페이지로 설정 $page=1;
}
//레코드 오프셋 계산 $offset=$pagesize*($page - 1);
//지정된 개수의 레코드 읽기 $rs=mysql_query("select * from myTable order by id desclimit $offset,$pagesize",$conn);
if ($myrow = mysql_fetch_array($rs))
{
$i=0;
?>
<테이블 테두리="0" 너비="80%">
<tr>
<td 너비="50%" bgcolor="#E0E0E0">
<p align="center">제목</td>
<td 너비="50%" bgcolor="#E0E0E0">
<p align="center">게시 시간</td>
</tr>
<?php
하다 {
$i++;
?>
<tr>
<td width="50%"><?=$myrow["news_title"]?></td>
<td width="50%"><?=$myrow["news_cont"]?></td>
</tr>
<?php
}
while($myrow = mysql_fetch_array($rs));
echo "</테이블>";
}
echo "<div align='center'>에는 ".$pages." 페이지가 있습니다 (".$page."/".$pages.")";
($i=1;$i< $page;$i++)에 대해
echo "<a href='fenye.php?page=".$i."'>[".$i ."]</a> ";
echo "[".$page."]";
($i=$page+1;$i<=$pages;$i++)에 대해
echo "<a href='fenye.php?page=".$i."'>[".$i ."]</a> ";
echo "</div>";
?>
</본문>
</html>
5. 요약
이 예제 코드는 windows2000 server+php4.4.0+mysql5.0.16에서 정상적으로 실행됩니다. 이 예에 표시된 페이징 형식은 [1][2][3]...입니다. "홈 페이지 이전 페이지 다음 페이지 마지막 페이지" 형식으로 표시하려면 다음 코드를 추가하세요.
$first=1;
$prev=$page-1;
$next=$페이지+1;
$last=$페이지;
if ($페이지 ≥ 1)
{
echo "<a href='fenye.php?page=".$first."'>홈페이지</a> ";
echo "<a href='fenye.php?page=".$prev."'>이전 페이지</a> ";
}
if ($페이지 < $페이지)
{
echo "<a href='fenye.php?page=".$next."'>다음 페이지</a>
echo "<a href='fenye.php?page=".$last."'>마지막 페이지</a> ";
}
실제로 작동 원리를 숙지하기만 하면 페이징 표시 코드를 작성하는 것은 매우 간단합니다. 이 기사가 프로그래밍의 이러한 측면을 필요로 하는 웹 프로그래머에게 도움이 되기를 바랍니다.