|
  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14389
- 金币
- 2480
- 威望
- 1647
- 贡献
- 1428
|
% D# z+ I8 c% G
学习目的:做一个分页显示
3 [& Z: w5 F# I! v x& G2 K关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num
% x, G- E2 y* L9 F! |# ^* [. O3 i3 B: U4 M7 i; |6 D
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。9 T0 i0 M9 f6 w. q! Z( ~ g
1 f: C7 M+ s; k$ y; e! B) O7 C
$execc="select count(*) from tablename ";
3 j* S* g* U2 n4 z" z* ~5 f$resultc=mysql_query($execc);
8 a3 h' ` H+ D$rsc=mysql_fetch_array($resultc);
$ L7 r5 | o: a9 T( m& K$num=$rsc[0];% |/ \! f: B& W" ]' _ g
" ?+ }' c$ ]8 ~- h% f
这样可以得到记录总数
5 ^# g7 s" i1 C! ~3 ?# G$ Tceil($num/10))如果一页10记录的话,这个就是总的页数
# @9 P m. ^8 I) M所以可以这么写
, g5 z$ n" m6 ?1 u u9 Oif(empty($_GET['page']))
. J1 ]7 z2 w5 ~# I! F* m{9 |+ n4 _9 U4 `2 B* [9 P
$page=0;1 R4 Y2 v) @4 f s4 ]$ b
}5 l1 A' g3 s1 _ @- T" b! q* B0 }
else
% n2 ~: Q3 |" F# ]. m _* v. i{5 w; m! e" g, U: A/ H% Z3 @
$page=$_GET['page'];
. ^: V7 }" _2 ~' G# C; _if($page<0)$page=0;# S1 e8 ^' O; V$ `* ^1 F
if($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-1# U0 D# Q( y. t' s5 y
}
! D6 g K' A$ c) p0 c; L8 Z* }: x
这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";
2 J: W- s; X3 g$ L1 `% _5 ]2 z//一页是10记录的
2 [' [' a* O- q& G6 L( l' F最后我们需要做的就是几个连接:* g# t0 b0 E* h9 }% C2 T1 l
<a href="xxx.php?page=0">FirstPage</a> 6 Z5 j, Y/ v1 K
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
$ e) d5 L$ E4 a) q% l<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
! c" I) j- B# |+ w ]<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
$ Z5 }' u- C0 E6 o3 }. [# V3 b% A' L1 r+ L- {- r5 ~: g, ?
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|