|
  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14325
- 金币
- 2448
- 威望
- 1647
- 贡献
- 1396
|
; Y. A a* f* h6 D6 |2 N# k. @# l) t
学习目的:做一个分页显示6 P1 j6 i& x6 r6 |5 b" b4 Q
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num# H) X! a+ x# @' _& {9 `0 S2 K& s: o* Z
& \3 W' ~- t. e
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。7 ^" w6 x5 Z6 ]" |- f0 C
; r; \, z' z! O+ T2 A0 j- v
$execc="select count(*) from tablename ";9 I5 L. a. ]/ s7 n, S: a
$resultc=mysql_query($execc);- A) h9 b0 O3 _6 q- h/ W2 m, r4 e
$rsc=mysql_fetch_array($resultc);7 I5 h5 [% I# i
$num=$rsc[0];
, n" l+ M$ y) H' W" R' v+ ^2 i- ?* e0 K+ n1 q2 z
这样可以得到记录总数
: h$ d+ a0 p$ `' y) J: yceil($num/10))如果一页10记录的话,这个就是总的页数
+ I$ @ q3 P% E8 w& F" R! o1 n. `所以可以这么写& p; d: u" i4 m6 g7 ?* a
if(empty($_GET['page']))
8 A; t3 X- d2 @+ c! K{
4 ?, i) ~( V; V! }" L. }$page=0;
- ]' H8 K1 ^+ ^ `- ~}3 |% \4 u% r- g$ P( W' i! Y
else
5 I( R: m, T& E P6 s. e{
7 a! q' ~7 H2 n+ R/ J: H& O+ {$page=$_GET['page'];
4 o+ b8 \# r/ u9 t$ C% }% Y2 Bif($page<0)$page=0;7 _2 X, V# \' o1 @# }
if($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-1. ~" A5 ]' B% [4 ~
} / ~; Z3 w u& C+ Q
' ]( V7 O% |. V! v' B
这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";
9 H3 ^0 d y, m/ W- A8 ]9 T# n- T//一页是10记录的9 _) W2 y, T0 L0 X
最后我们需要做的就是几个连接:+ x1 l( w4 @* k: p L- |+ J# \
<a href="xxx.php?page=0">FirstPage</a> 8 r3 D) `3 [' R6 R) S( y' z1 n
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> " }4 x- C% L% N3 e' M7 U: G
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
+ G' b, `( K# p' Z& h<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
) v% q6 @; y6 z: `0 \% K, V+ V8 q8 d, I" c
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|