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

十天学会php之第八天


9 l7 F4 E4 Q3 N" f" B! I: G学习目的:做一个分页显示. t  e# h- H( @
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num- }7 q8 P/ c. {( @

( h- a4 P6 b# P8 C对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。

6 Z" O9 A; w2 o7 s3 _: _
8 A5 N  n1 w( E- i1 @1 u  Y$execc="select count(*) from tablename ";
* Q% [3 v+ B. ~2 [) n$resultc=mysql_query($execc);
/ u: K0 P( s: Y; _" d% Q- [$rsc=mysql_fetch_array($resultc);
" D7 D( Z: g  F7 q2 @1 x$num=$rsc[0];
6 a1 @# j# Q3 {, k$ L% ~6 X" @+ g: Y& i
这样可以得到记录总数* ^  A: o# d- C% G5 C: A
ceil($num/10))如果一页10记录的话,这个就是总的页数# ?1 r8 v5 t) w, u/ M( @
所以可以这么写
: ?6 m  k* P! v9 _) ?) ~. s1 nif(empty($_GET['page']))
3 P- O  O2 P6 c( T' B" a9 u* G8 b{
. n1 @* n2 ^7 {5 c! b$page=0;. u+ V- T' H- T. F0 f3 _
}
) r+ `  W! `8 }% z( O- Q# u  D0 Q: Yelse' ?) _" e  D/ y9 I
{! b  z# O* p* |" S
$page=$_GET['page'];1 L/ p) R. X5 f, Z0 J
if($page<0)$page=0;* Y; p% b- J' x6 |
if($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-1
: I/ Y9 }7 C6 N, h} ( h9 {# U* t% r

; m& Y0 p) }# i: q$ B7 O( c这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";8 p3 T7 C: Z  Y6 k
//一页是10记录的
! t# M- w1 {( o5 I
最后我们需要做的就是几个连接:* p; H/ ~" y2 \# D; L: X
<a href="xxx.php?page=0">FirstPage</a>
7 ~) M8 N3 s' _& M; Y  U<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
& g3 ~3 {) a2 @& m& ~<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> 7 f6 m* x7 F. X% i& Y5 c
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
4 h/ V8 V; x) l# S/ |+ m. m8 e# e/ P0 w' g3 p) Z3 m0 Q
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

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