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

十天学会php之第八天

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之第八天就说到这里,第九天说一下一些注意的问题。

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