  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14221
- 金币
- 2401
- 威望
- 1647
- 贡献
- 1349
|
0 o+ j' j% o8 {0 Z; ?/ K9 h' c' z
学习目的:做一个分页显示9 S& c0 y0 o' F7 r* B) K4 i
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num
4 t8 e( ~& @5 A# i6 y7 O/ j% k, H+ _2 e
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。; r3 B" b/ ]/ R- U( j% Z# w, G0 }+ V
5 J# X1 s' a: B2 X0 c
$execc="select count(*) from tablename ";1 ] ]1 @. I# Z2 I( n% w! x% @/ E
$resultc=mysql_query($execc);* G1 ~* X. {' G/ g( `/ c0 n( H, ~
$rsc=mysql_fetch_array($resultc);
: c* N# g0 `7 ~( N6 F$num=$rsc[0];. |( M' ]: a8 |, _+ m5 q: {, f; X
/ X6 ^3 I% F4 X" t8 h这样可以得到记录总数2 ^* b# a2 k+ d) p- y3 ~
ceil($num/10))如果一页10记录的话,这个就是总的页数
! r/ x: }; D. t, t所以可以这么写
+ j3 I A! w6 zif(empty($_GET['page']))
7 r. h/ j& I) H! r8 Z! F0 x% `{% F, p( q# E9 V
$page=0;. ]. j5 f% f `3 R, l9 u5 Y
}
; [3 w" ^; H$ F0 Nelse6 |2 n" P0 O: i) N; c1 u' c7 q
{
7 c5 W' Z# v$ h! n8 F3 ~* Z$page=$_GET['page'];
+ M. E$ o7 C: U9 n: T0 eif($page<0)$page=0;
! r: d+ K3 [6 G# S2 `, k) rif($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-1
+ r& @8 _+ z- H% [* S1 a# G7 Z1 x} 1 n5 F. W x6 A& P* b/ Q
9 o0 B6 T4 S5 \% l4 D1 k这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";% \- v. z3 W8 B# I; B( z
//一页是10记录的
% q8 {: v+ b# J7 K# e" W最后我们需要做的就是几个连接:
/ @8 A( @/ v4 o7 w/ Y" n* L# V<a href="xxx.php?page=0">FirstPage</a>
- K* R- o' {& M1 C* F<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> : Z. U# k, T" g- g, Q
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
& N. J3 b( l* M: N7 f# u<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
6 ^2 D+ d9 s$ P$ u, A X0 a0 S
& f k+ g; z, ?# e* H这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|