  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14247
- 金币
- 2414
- 威望
- 1647
- 贡献
- 1362
|
2 k7 C/ t. [! J6 G [& V* Y/ y( L1 Z学习目的:做一个分页显示
2 l8 h t1 v# Y& A7 w关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num, Q5 D; x" U9 O
7 A0 i: g" F+ S' H' [. P! B
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。! r: j) L" T5 ?3 d) d
+ z4 n) |" o" P; p- X: I
$execc="select count(*) from tablename ";! c% F, {/ J! e$ u; l. h% e
$resultc=mysql_query($execc);- i5 U; R$ e9 }: c
$rsc=mysql_fetch_array($resultc);
# }9 E* [# S1 P5 N) D3 C$num=$rsc[0];$ j6 a3 l6 D# b
* @! b1 l& H# c6 h7 L% J3 c这样可以得到记录总数& ^5 @) c6 Q* ^# |# ~6 V% N8 X, X) r
ceil($num/10))如果一页10记录的话,这个就是总的页数& m, L- ~ a) j0 p2 o" I
所以可以这么写
8 c' q' `, n' A- |if(empty($_GET['page']))2 i" Z' s3 \& F$ m% l0 H' o; M
{
# s6 H5 J7 |! L N- I$page=0;5 d- E. q) Z5 a+ v3 O3 w8 ~: Q) _
}
. X4 |3 {6 b! `1 G6 Qelse J0 u- F/ g. c& B3 O6 u) u0 E
{
$ P2 K N" Y! E: @5 u$page=$_GET['page'];
k" y/ Z9 g2 M1 V, b- W! Yif($page<0)$page=0;7 f& C' x4 @# |! Q
if($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-1
8 u% S- @4 r3 s! @: j9 u$ [4 S}
: f8 e( Z# W0 C. v# C: @( E3 _- O4 z; h5 L! I
这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";
9 @ x& i! [: B b1 S g, c//一页是10记录的
( \4 N' P0 f$ p# ^最后我们需要做的就是几个连接:. ]0 [" z2 j. B9 i' |& J9 ?# e# U. H' i
<a href="xxx.php?page=0">FirstPage</a>
o( i/ @- A& o t, s ?% c<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> ; H0 x, |* Y6 T4 o% l: s9 g
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> ' s5 A9 L d& s7 }# u, p! i, J, z7 F
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
4 X u" n8 k* }# e. o' P: F; V0 ~: v6 `7 K+ x; d+ S
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|