  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14171
- 金币
- 2376
- 威望
- 1647
- 贡献
- 1324
|
9 ?% ?2 m f, w) e
学习目的:做一个分页显示3 l$ f9 p" J: u/ d5 ?
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num' k. u+ t( H, P* @
, f# {' I' h# [0 r: w$ x对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。. Y/ Y; C$ \9 D4 J8 [8 Y+ h
; P4 T+ H0 | U- N1 f$execc="select count(*) from tablename ";
& J+ X: k6 O: i1 w' I: j' ?$resultc=mysql_query($execc);
- z3 Q/ P) v' d- q1 ?, [# X1 o/ P$rsc=mysql_fetch_array($resultc);2 V$ g* F2 p$ K# d
$num=$rsc[0];$ i; B& p' A" ^$ P: H; x
z) [8 H8 \; K; |' }8 S6 n0 w. i0 o
这样可以得到记录总数, m7 W' [) K" V% R, |
ceil($num/10))如果一页10记录的话,这个就是总的页数7 x F h" \7 D
所以可以这么写
# w) L0 R7 S8 b0 |if(empty($_GET['page']))
- k" Z+ e* e' ]4 N/ p9 e( p) Q{
, M1 |7 Z2 c6 N1 S$page=0;
+ Z/ F7 G* A9 L. S8 L- S}& P G" f. X3 r! L' c
else
6 y; |7 F$ h* P# ?0 S* l{
3 x2 Q2 D$ _+ z) U4 h8 ?$page=$_GET['page'];
- ?$ p4 z F# ?9 ~' D9 Aif($page<0)$page=0;3 q- I& x3 w! k- G! ^
if($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-13 w S$ ]' [/ {6 h. h; U" T& s( _
}
6 d/ m6 }( @, N, n; W0 d% m, P* R+ e" @3 D* p9 i% P. z; y0 ]
这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";4 k! I# B! S2 T
//一页是10记录的
% P. j: i$ X+ v, Y% B! V最后我们需要做的就是几个连接:
% C( c. g$ Z# D<a href="xxx.php?page=0">FirstPage</a> * W: E9 l" e1 Z3 d- ]
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
% t8 O' a9 t; n. P, x3 @' ?% r* g% V<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> . l/ H8 F6 ^# T3 T6 U" o3 S; e
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>2 @3 ? o4 I, S4 K p2 t
5 J5 O# D3 w& H8 G3 S这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|