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

十天学会php之第八天


! d7 _2 [, y) B" x* C  \2 v学习目的:做一个分页显示
0 y1 T. d! y+ N) x; k% U! T关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num% O5 R( L* B, R+ R# y( f
: m+ U. L2 ^- B# H! t6 J
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。

& I: l0 W/ `2 P( Q' C
4 E, a, T, w' ^. ~  J1 |- Z% g$execc="select count(*) from tablename ";
* D2 L2 x0 e' u8 y/ W& u2 D8 P$resultc=mysql_query($execc);. M2 t5 B' c, T+ f& r- \" e
$rsc=mysql_fetch_array($resultc);
) c. R! [  y& @$ k1 q! U1 B$num=$rsc[0];; S+ i- E1 L1 V# D

: z( u( F' H+ P5 y  u, p! ]# y7 {
这样可以得到记录总数& C7 x( L0 Q8 x, n* s3 V! }
ceil($num/10))如果一页10记录的话,这个就是总的页数
* P# v0 T6 }5 b! v) O所以可以这么写
+ t3 x% [' H; {3 Q# e( K5 jif(empty($_GET['page']))
$ S/ {+ U' e: g4 f2 w{
4 Z# {; h* S0 c3 m- H3 M+ J; v7 N: i: W$page=0;) s1 u5 m& I+ O% s0 c4 P
}9 m  u" O) C" K5 m) I
else
. S: l; M8 }2 k{
9 }! H; V  Y) p7 A$ h$ k% p9 W: J+ g$page=$_GET['page'];
7 v8 \0 {" V: `6 d) V3 }1 Oif($page<0)$page=0;
% h/ L3 t3 Y/ n) w3 O9 `if($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-17 M5 S1 |, R; H$ d  ]8 ]
}
  I" w( {' K( o# i: ]" l( w* n4 q6 n: L1 g# A: f9 M- Z
这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";+ O4 H# u+ b: t$ J- m
//一页是10记录的

; F( p5 }( {/ c1 T" W, @; c6 _最后我们需要做的就是几个连接:7 }& E( p8 B  |9 i, f$ z& F
<a href="xxx.php?page=0">FirstPage</a>
; j$ q5 X' F9 e<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
9 D9 P2 X3 m* L/ ~; @+ h& C<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
1 m- }7 s4 i6 g# ^% a- V<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>& f, S6 u# w+ v
3 j# B9 N2 V, g1 T9 p
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

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