PHP mysql을 사용하여 모든 데이터베이스 정보를 웹 페이지에 표시하는 것이 매우 간단하고 흥미롭다는 것을 우리 모두 알고 있습니다. 데이터베이스 정보가 매우 작을 때 페이지 표시는 여전히 만족스럽지만 데이터베이스가 많을 때입니다. 정보, 페이지 표시 표시 상황이 매우 나빠질 것입니다. 현재 페이지의 데이터 표시 양을 구현하는 방법과 동적 뒤집기 기능을 구현하는 방법을 소개하겠습니다.
여기에서는 두 페이지 넘김 표시 기능 구현을 소개합니다.
먼저 페이지 넘김에 사용되는 데이터베이스 구문을 소개하겠습니다.
mysql_query("select * from table order by id desc");
이 데이터베이스 문은 레코드를 검색하여 역순으로 표시하는 데 사용되지만 페이지 넘김 기능에서는 역할을 하지 않습니다. 다음 확장된 구문은 페이지 넘김을 구현하는 핵심 기능입니다.
mysql_query("select * from table order by id desc limit $start,$limit");
여기서 $start는 데이터베이스 검색의 시작 행이고, $limit는 시작 행에서 시작하여 $limit 레코드로 끝나는 검색입니다. 이 핵심 기능을 사용하면 페이지 넘김 기능을 시작할 수 있습니다.
첫 페이지 넘기기 기능:
여기에 소개된 기능은 페이지 넘기기 기능 중 가장 간단한 기능입니다. 페이지 넘기기 기능은 이 사이트의 특별 뉴스 및 다운로드 센터의 페이지 넘기기 기능입니다.
먼저 페이지 넘기기 기능을 구현한 아이디어를 소개합니다:
위의 아이디어를 얻은 후 프로그램 설계를 시작할 수 있습니다
page.php:
<? //设置当前页显示的数量(这个数量可任意设置) $limit=20; //初始化数据库搜索起始记录 if (!emptyempty($start)) $start=0; mysql_connect("localhost","",""); mysql_select_db(database); //设置数据库记录总数 $result=mysql_query("select * from table"); $num_max=mysql_numrows($result); $result=mysql_query("select * from table order by id desc limit $start,$limit); $num=mysql_numrows($result); echo "<table><tr><td>翻页功能</td></tr>"; if (!emptyempty($num)) { for ($i=0;$i<$num;$i++) { $val=mysql_result($result,$i,"val"); $val1=mysql_result($result,$i,"val1"); echo "<tr><td>$val</td><td>$val1</td></tr>"; } } echo "<tr><td>"; //设置向前翻页的跳转 $prve=$start-$limit; if ($prve>=0) { echo "<a href=page.php?start=$prve>prve</a>"; } //设置向后翻页的跳转 $next=$start+$limit; if ($next<$num_max) { echo "<a href=page.php?start=$next>next</a>"; } echo "</td></tr></table>"; ?>
앞으로 넘기고 뒤로 넘기는 프로그램이 완성되었지만 표시할 더 많은 데이터를 처리할 때 이 기능은 매우 번거로울 것입니다. 다음은 계속해서 더 강력하고 복잡한 페이지 넘기기 기능을 소개할 예정입니다. 더 적절한 이름을 찾을 수 없기 때문에 항상 이렇게 부릅니다. :)
간단한 페이지 넘기기 기능은 앞서 소개한 바 있습니다. 아래에 소개된 페이지 넘기기 기능은 이 사이트의 특별 포럼과 기사에서 이 루프 페이지 넘기기 기능을 사용하여 더욱 강력해졌습니다.
순환적인 페이지 넘김은 숫자와 함께 앞뒤로 이동하여 구현됩니다. 구체적인 표현은 다음과 같습니다.
페이지: prve <<1 2 3 4 ....... 20 >> 다음
내부의 숫자는 각각의 현재 페이지를 나타냅니다. 단순히 현재 페이지를 앞으로 및 뒤로 넘기는 것이 아니라 앞으로 및 뒤로 넘기기에 대한 보다 복잡한 디지털 제어입니다.
먼저 데이터베이스에 1,000개가 넘는 레코드가 있다고 과감히 가정하겠습니다. 현재 25개의 레코드를 표시하려고 하며 숫자 뒤집기 제어가 20이므로 표시 결과는 다음과 같습니다.
페이지: 0 1 2 3 ......... 19 >> 다음
뒤집은 후 결과 표시:
페이지: prve <<20 27 28 ....... 49 >>다음
자, 규칙을 살펴보겠습니다. 고정된 표시 숫자는 25이고, 고정된 숫자는 20의 두 배를 제어합니다. 이 두 숫자를 사용하여 페이지 넘김 기능을 구현할 수 있습니다.
먼저 고정 디스플레이 변수를 설정하세요:
$한도=20;
$start=0;
$num;
페이지 번호 변수:$page;
페이지 번호 주기를 표시하는 프로그램은 다음과 같습니다.
<? ... $result=mysql_query("select * from table"); $num=mysql_numrows($result); for ($page=0;$page<($num/$limit);$page++) { echo $page; if ($page>0 && ($page%20)==0) { break; //退出循环 } } ?>
<? $limit=25; if (!emptyempty($start)) $start=0; if (!emptyempty($s)) $s=0; mysql_connect("localhost","",""); mysql_select_db(database); //统计数据库记录总数 $result=mysql_query("select * from table"); $num=mysql_numrows($result); $result=mysql_query("select * from table order by id limit $start,$limit"); $numb=mysql_numrows($result); echo "<table>"; if (!emptyempty($numb)) { for($i=0;$i<$numb;$i++) { $val=mysql_result($result,$i,"val"); $val1=mysql_result($result,$i,"val1"); echo "<tr><td>$val</td><td>$val1</td></tr>"; } } echo "</table>"; //数字循环翻页的控制 echo "<table>"; echo "<tr><td>页:</td>"; //前翻控制 if ($s>20) { if ($s==21) { $st=$s-21; } else { $st=$s-20; } $pstart=$st*$limit; echo "<td><a href=page.php?"; echo "start=$pstart&s=$st>prve</a></td>"; } echo "<td> >></td>"; //设置当前页对应页数无链接功能 $star=$start; //注意循环的初始附值,仔细想想为什么不是 0 for ($page=$s;$page<($num/$limit);$page++) { $start=$page*$limit; echo "<td>"; if($page!=$star/$limit) { echo "<a href=page.php?"; echo "start=$start&s=$s>"; } echo $page; if($page!=$star/$limit) { echo "</a>"; } echo "</td>"; //控制数字页面限制显示功能,控制只显示 20 页 if ($page>0 && ($page%20)==0) { if ($s==0) { $s=$s+21; } else { $s=$s+20; } $start=$start+$limit; if ((($num/$limit)-1)>$page) { echo "<td> <<</td><td><a href'page.php?"; echo "start=$start&s=$s>next</a></td>"; } //注意跳出循环的控制 break; } } echo "</tr></table>"; ?>
위 프로그램은 이미 강력한 페이지 넘기기 기능을 완성할 수 있습니다. 주의 깊게 공부하고 배운 내용을 실제로 적용할 수 있습니다.