十天学会php之第八天
) L& U. ]) [+ l( a
学习目的:做一个分页显示9 G# c$ X6 O2 t L3 v. N
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num
; B$ ?/ s7 a. l1 l& S: Z9 Q6 z& \! Q9 R" _
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
1 p ]6 d& c+ |2 `, P& {& L
/ z7 b* g6 D/ q3 H8 h* y$execc="select count(*) from tablename ";/ U* F$ \! w; }9 ^: O
$resultc=mysql_query($execc);
. k N$ n2 }- y1 g$rsc=mysql_fetch_array($resultc);
, @9 c$ N# U2 E+ V$ g$num=$rsc[0];
) n. `1 N0 v- _, T. n
' Y1 F, `# a* g7 |0 f这样可以得到记录总数
5 V' D6 W- ~( U* _ceil($num/10))如果一页10记录的话,这个就是总的页数5 b, U% b8 U( g8 W
所以可以这么写: ^, |" E) @- H' K8 C$ J7 N) G
if(empty($_GET['page']))
0 u, E+ N8 B* j2 u% ?{
" @; {. v% \& [$page=0;6 }: w% ]9 i0 B, o9 [* k
}0 h3 d% M( M& Q. N$ N8 d7 g& f/ V" E. ]
else
) j1 f6 v& i6 Y8 _# I# P" {9 N{0 v& m2 I9 S0 M
$page=$_GET['page'];+ W6 n t# H: E b) B! k' U
if($page<0)$page=0;% Y' J7 W1 J, C. V, t1 |
if($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-1 j4 O* J1 a, z5 R
} 5 \5 ^5 z5 g ~& ~, v( r
; P y' [8 X+ o l/ Z6 _
这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";. F( P; q6 a2 A; I1 q! o! j# i
//一页是10记录的
$ G y9 e8 A3 ^' Z# m) r% ]4 x最后我们需要做的就是几个连接:
+ |+ j: e( [8 u n1 v# h/ U! v: B' M<a href="xxx.php?page=0">FirstPage</a> ( \) G1 S4 ]1 W* _
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
6 l4 o$ }, A/ Y/ f$ P, K<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> - m2 p1 U4 r. m4 k0 G- S
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>3 C, ^& q0 C$ n7 u e) `
! \/ [( v! G1 s0 b9 A. y这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。
搜索更多相关主题的帖子:
十天学会php 教程