返回列表 发帖

十天学会php之第八天


, V! ^0 ?+ X" M6 K2 S学习目的:做一个分页显示4 `+ K7 |3 E8 z& R0 k
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num9 l; s$ m  G8 K
& z1 H& i# R/ j; |3 D$ {
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
! {9 J4 w; S+ f8 P- U; R
5 U) t2 C5 X6 ]
$execc="select count(*) from tablename ";
& R) _) p5 P! l, k/ c4 G( `$resultc=mysql_query($execc);
2 V9 e* M5 s+ q! M# d0 V" I1 Q' z3 k1 d5 e$rsc=mysql_fetch_array($resultc);& q7 b6 h* C2 a! h7 s2 M
$num=$rsc[0];
) q2 f* u4 r$ m- @
6 Z. P" ]# j/ O+ R! \
这样可以得到记录总数9 `* d" X* [3 d3 ]
ceil($num/10))如果一页10记录的话,这个就是总的页数
, ?4 q1 l2 M1 g1 e% w3 T所以可以这么写& w5 j3 @$ h% k
if(empty($_GET['page'])). W( h; C6 H/ H
{: l1 L6 T' V" e* j: H& v
$page=0;/ B6 H% ~, H1 I4 g% Y
}
: I- K4 Z4 N  Q7 R! Ielse
/ G& U6 K+ m2 K# V1 F/ ?) A{6 `7 `* K6 T  s: t" b" Y5 l; b$ c
$page=$_GET['page'];: g6 y2 c2 \1 R, y# ~/ U) }: x& ^
if($page<0)$page=0;) I' Y4 ]* z) T8 d) X+ V. }, S
if($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-1/ _. V3 q& O: z7 F8 S
}
9 \: Z& E. Z$ r/ N" U- U# E! A, z& T7 L8 ~& F$ p2 n* |9 a
这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";7 \7 I6 {3 M# }4 S) S$ W5 B5 y
//一页是10记录的

$ N6 p) s1 {% z3 ^* P2 ?, A最后我们需要做的就是几个连接:% S: H+ j0 m) G0 G
<a href="xxx.php?page=0">FirstPage</a>
' F! i" W; M# M- L' A  k5 G<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
) Z, f7 Z% d% [4 m/ I<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
) w, f5 O/ L" l. H2 J: z6 ^% {<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
, X  C! \' u' h( ~4 e6 s$ ]  [
8 P; R( J% ]/ I* o& Q3 U
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

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