> 백엔드 개발 > PHP 튜토리얼 > PHP_php 스킬에서 페이지 넘김 기능을 구현하는 방법

PHP_php 스킬에서 페이지 넘김 기능을 구현하는 방법

WBOY
풀어 주다: 2016-05-16 20:05:27
원래의
935명이 탐색했습니다.

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 레코드로 끝나는 검색입니다. 이 핵심 기능을 사용하면 페이지 넘김 기능을 시작할 수 있습니다.

첫 페이지 넘기기 기능:
여기에 소개된 기능은 페이지 넘기기 기능 중 가장 간단한 기능입니다. 페이지 넘기기 기능은 이 사이트의 특별 뉴스 및 다운로드 센터의 페이지 넘기기 기능입니다.
먼저 페이지 넘기기 기능을 구현한 아이디어를 소개합니다:

  • 먼저 현재 페이지에 고정적으로 표시되는 데이터 레코드 수를 결정합니다. $limit 값을 20으로 설정합니다: $limit=20;
  • 데이터베이스 레코드를 표시할 때 첫 번째 레코드부터 시작해야 하므로 여기서 $start의 초기 값은 0으로 설정됩니다. $start=0;
  • 페이지 넘김 기능의 구현은 $start의 동적 변경에 의존합니다. 페이지를 뒤로 넘길 때 $start는 정기적으로 $limit:$start $limit를 추가하고, 페이지를 앞으로 넘길 때 $start는 정기적으로 $limit를 뺍니다. . :$start-$limit;

위의 아이디어를 얻은 후 프로그램 설계를 시작할 수 있습니다

page.php:

<&#63; 
//设置当前页显示的数量(这个数量可任意设置) 
$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&#63;start=$prve>prve</a>"; 
} 
//设置向后翻页的跳转 
$next=$start+$limit; 
if ($next<$num_max) { 
echo "<a href=page.php&#63;start=$next>next</a>"; 
} 
echo "</td></tr></table>"; 
&#63;>
로그인 후 복사

앞으로 넘기고 뒤로 넘기는 프로그램이 완성되었지만 표시할 더 많은 데이터를 처리할 때 이 기능은 매우 번거로울 것입니다. 다음은 계속해서 더 강력하고 복잡한 페이지 넘기기 기능을 소개할 예정입니다. 더 적절한 이름을 찾을 수 없기 때문에 항상 이렇게 부릅니다. :)
간단한 페이지 넘기기 기능은 앞서 소개한 바 있습니다. 아래에 소개된 페이지 넘기기 기능은 이 사이트의 특별 포럼과 기사에서 이 루프 페이지 넘기기 기능을 사용하여 더욱 강력해졌습니다. 순환적인 페이지 넘김은 숫자와 함께 앞뒤로 이동하여 구현됩니다. 구체적인 표현은 다음과 같습니다.

페이지: 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;
페이지 번호 주기를 표시하는 프로그램은 다음과 같습니다.

<&#63; 
... 
$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; //退出循环 
} 
} 
&#63;>

로그인 후 복사
숫자를 표시하는 것 외에는 이 코드에서는 뒤집기를 제어할 숫자가 더 많기 때문에 이러한 제어 수량을 표시하고 식별하기 위해 여러 변수를 사용해야 합니다. 여기서는 이 변수를 사용합니다. 이것은 디지털 페이지 넘기기를 제어하는 ​​데 사용됩니다. 이제 페이지 넘기기를 구현하는 전체 코드 page.php를 살펴볼 수 있습니다.


<&#63; 
$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&#63;"; 
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&#63;"; 
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&#63;"; 
echo "start=$start&s=$s>next</a></td>"; 
} 
//注意跳出循环的控制 
break; 
} 
} 
echo "</tr></table>"; 
&#63;>
로그인 후 복사
제출 페이지 넘기기, 즉 제출 양식에 데이터 제출을 추가한 후 프로그램이 해당 페이지로 이동하는 페이지 넘기기 기능도 있습니다. 이 기능은 구현하기가 비교적 간단하며 독자에게 맡깁니다. 완료합니다.

위 프로그램은 이미 강력한 페이지 넘기기 기능을 완성할 수 있습니다. 주의 깊게 공부하고 배운 내용을 실제로 적용할 수 있습니다.

관련 라벨:
php
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿