  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14197
- 金币
- 2389
- 威望
- 1647
- 贡献
- 1337
|
/ {9 z* T8 L5 ~7 X
学习目的:做一个分页显示
1 v( y# g9 L6 H$ u. B% p7 k关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num
2 Z. l. k- n# O( L& H/ V! R, c5 A" D; g8 N3 Q2 z
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。9 y% ]6 \0 U& l$ X# B$ a/ m _' H" }
1 z) w0 Z `$ R# C& s4 ?# K$execc="select count(*) from tablename ";
! z9 |/ q8 C2 @2 d8 G$resultc=mysql_query($execc);
; D* m9 q0 e3 b8 e0 p3 {7 g$rsc=mysql_fetch_array($resultc);: o9 t: }1 Y; }* q: N, V+ u
$num=$rsc[0];) X3 f$ @9 t+ b, d! C- s3 Z
- C* I Y- \+ k/ h这样可以得到记录总数" r2 }8 `/ @7 h$ H7 q
ceil($num/10))如果一页10记录的话,这个就是总的页数
) Y- @2 d5 f* S7 x3 C" L4 N所以可以这么写( e! T9 h) }' O3 g" _: J' m% _
if(empty($_GET['page']))9 V T5 R g. R: m) P) l
{
4 K; y. }# V9 G$page=0;" h) g& p1 ^' w$ ~* R7 \6 n' F
}
8 J7 r& e% D1 R2 ]1 ~1 v8 | Oelse
F7 s7 v) h) L1 U* p{& G2 B( H8 w* O7 D
$page=$_GET['page'];+ m1 ^! r! H: k) A6 L
if($page<0)$page=0;
" q U6 P3 M2 q4 rif($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-1" X# F* f# Q$ s8 w3 ^8 Y
}
6 P# c1 k, e6 x# i# O) N5 m
+ T) o. K0 ?6 l9 f) d* t这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";
0 x4 a) [# U5 T# u0 o//一页是10记录的/ I; c: n, z2 \7 R4 ]& k
最后我们需要做的就是几个连接:5 U/ O# t: i8 c
<a href="xxx.php?page=0">FirstPage</a> 8 q; F$ P& t7 w2 s
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> ' x0 \3 P- H, ^2 g4 N: h5 U
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
3 l6 [! L" C! j7 M<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>0 b4 V% |( x2 H# c
( _1 S- W, ?$ q2 k' J* \
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|