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

十天学会php之第八天

# w% v" g$ I+ z% f: M/ m  d7 b9 K
学习目的:做一个分页显示3 C7 z* K, g' x, Y8 X
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num- j- `2 \5 `. ^% `5 s

6 J) `4 I5 L, J) O1 S对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。

* z/ u6 D) u: \9 `* F: ^% P, d: T6 P6 o2 s# V
$execc="select count(*) from tablename ";
' @6 f2 j/ [6 S" M. k. v$resultc=mysql_query($execc);
; R) Y/ C* e+ _- N( s$ j) i$rsc=mysql_fetch_array($resultc);7 \% y1 x( K5 T6 L
$num=$rsc[0];: N: k" \7 {) i

' P: N8 j3 B2 W: o7 h
这样可以得到记录总数
# w8 n5 K- D0 p9 J9 mceil($num/10))如果一页10记录的话,这个就是总的页数* Y- ]' W9 ^% l  W
所以可以这么写5 I" t: _2 x: h5 L- j, L1 a1 `/ L1 O
if(empty($_GET['page']))
; ^$ d4 }2 y' w7 e+ d3 m{# h  G% P4 d  V0 D4 D- ~1 R
$page=0;# j/ |3 w% `2 i
}! x! M( y* M0 k0 C* \7 M
else
! x* i* _8 W4 R( b7 j, {{3 w* b+ [" v9 a: y
$page=$_GET['page'];
/ @$ \" z" j4 |3 N) G. bif($page<0)$page=0;
8 w# j: r& `  J% L, X: Rif($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-1: R/ B* p  B. S' l  Z2 a7 C
} 2 I8 T' X; `2 B" w9 }( c1 r
; _7 H- {1 q5 k( z/ v, F) |& Y
这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";
- M; B* ^. _9 y1 |4 S/ H//一页是10记录的

# ]$ H7 q. u2 r6 x1 K3 m3 o最后我们需要做的就是几个连接:
9 e4 q9 P; A' C  u<a href="xxx.php?page=0">FirstPage</a> $ k/ f$ Z. o. _/ i! {  e
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
: J+ r+ ^; X( }/ E$ ~, L1 s3 P) r<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
" m, W& q. Q+ [; b, L( F  t<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
" d4 |5 |% L% I" U/ ]  D7 n' d! ^: G7 y* G" a
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

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