  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14171
- 金币
- 2376
- 威望
- 1647
- 贡献
- 1324
|
6 f! a! p0 z1 V1 ^学习目的:做一个分页显示
8 _; S( W f, Z! r+ g' x关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num+ }% a3 i# X @, V3 K7 m, b# U
, `% E0 [2 f. t, h对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。1 k/ k2 j1 v/ T* V& T# I. a/ u% d
6 [9 h t$ k9 q$execc="select count(*) from tablename ";8 i% f4 Y. O1 f
$resultc=mysql_query($execc);+ T Q3 g% U% _1 z! A6 K" i
$rsc=mysql_fetch_array($resultc);
) Y; C1 z r7 j9 Z$num=$rsc[0];4 q6 ]8 c' X. }0 I0 X) p( J2 {
; X& z9 m% r0 h- p5 r
这样可以得到记录总数( `/ |3 u, c' P; f
ceil($num/10))如果一页10记录的话,这个就是总的页数
! S7 U% i! }/ U: A9 r r所以可以这么写0 l5 s6 G+ j' P X5 [# \
if(empty($_GET['page']))
& j. c- O S$ u4 M! H{
4 F. U* r; {: u$ ~- u$page=0;7 f1 ]3 k+ s# Q, ]& I% K; G; ~3 E
}
5 w6 e, i5 B3 r* |else
; m3 t2 S; N/ _5 t }{3 R) w) W7 {9 t0 p- L/ m* z4 M
$page=$_GET['page'];
5 s1 p9 m3 [+ jif($page<0)$page=0;$ t* Q" m7 K1 ~
if($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-1
" j- |, m0 ? E/ K0 _5 U; Z) `. d# k} 4 o8 A/ d: N' Y7 D( N) ^6 K- _ r
' g+ z3 |# o% q, p这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";
/ W. V/ h6 U U5 j7 X$ n//一页是10记录的
0 z0 {4 B. j5 s8 Z( n最后我们需要做的就是几个连接:
# @. M& W4 J, g. p v<a href="xxx.php?page=0">FirstPage</a> - I3 i6 {! S; Q6 ~# y) K5 v; F
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
7 y- y+ A% e4 U3 C4 w; o<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
- f$ d9 _5 T) Q" k' o<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a># m8 i8 F R4 J
V# R/ E. a. S0 M8 G" H9 ^ H这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|