获得本站免费赞助空间请点这里
返回列表 发帖

十天学会php之第八天

( z& g- s: r7 v+ s% A9 ?
学习目的:做一个分页显示  X8 H/ L: `- l+ J5 X" D; s  T
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num/ x7 ]$ J/ O' ]  w; i
) `2 Q! q6 d: A9 d
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
4 r: S  B: F$ H& W

, V+ H  y1 q  L/ t5 o; T$execc="select count(*) from tablename ";
8 _. V+ U. g: f. ~2 i" p6 i9 E* P$ @. y2 D" R$resultc=mysql_query($execc);% r0 k/ V7 n  J& V: x
$rsc=mysql_fetch_array($resultc);
: T% c$ m  {  X  w$num=$rsc[0];# m- E% B4 r' W: Q3 v0 O% G
5 i( K8 S( I5 B. W  P; p
这样可以得到记录总数
5 v# b8 T% i" \; K8 Rceil($num/10))如果一页10记录的话,这个就是总的页数' e5 d$ B6 W- Y. b" [! Z2 \% q$ A/ c
所以可以这么写  i+ [, c1 ]4 p/ p; q
if(empty($_GET['page']))0 y8 Y3 P& Z% Q# K2 H
{
/ l+ B& Z5 K' x# v/ A& w$page=0;
9 |  `' W: V: h' [5 M0 o}
: w, l* f0 e$ I! Yelse1 S1 j; P8 W3 Z4 h2 G
{5 v1 H- ^, S$ I4 u% Q
$page=$_GET['page'];0 [! C3 T+ K2 k/ Q$ M, `
if($page<0)$page=0;
& b3 w' I' }5 g2 ?8 o5 Lif($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-14 w8 v3 T3 x7 a0 v
}
; n6 P3 r  r1 q1 i" r" c9 B& `& t- A) @& H: Z; a9 o" \
这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";
7 ^! S  b) H% F4 a/ s: f7 I//一页是10记录的

, d2 y; z; f- W最后我们需要做的就是几个连接:
, g4 k; o/ D0 G<a href="xxx.php?page=0">FirstPage</a> % P* R* ~3 t( g' Y. ?) v; V3 S$ d
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> ' c" h( f6 e, D( T
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> : e- y4 E3 J! u! k8 K8 s" K
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>4 B7 i* y1 Q$ I! c5 {0 X

6 e* E' c) X) Z( m7 E* L
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

返回列表
【捌玖网络】已经运行: