  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14197
- 金币
- 2389
- 威望
- 1647
- 贡献
- 1337
|
2 M9 D/ G H6 k: [- \
学习目的:做一个分页显示6 v! ]* L: M: E2 M4 r* l! |( m( O
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num
8 j, s0 d5 G$ n7 @8 d/ m
/ X. c9 t8 }9 r; D' }对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
# u# s( G& s0 t ^* E$ v3 D$ q7 Y# R9 O ^, K8 `
$execc="select count(*) from tablename ";$ p9 j+ F9 [3 @# R( b: d
$resultc=mysql_query($execc);. D+ o/ O, r3 Y/ [5 C c. X' h
$rsc=mysql_fetch_array($resultc);6 p- |2 n! W. I! D' ?% n% `
$num=$rsc[0];4 B" @' y1 Y6 i3 v% t
8 i' ?( l) [2 X: O4 g
这样可以得到记录总数" v* C: Y8 G) O) r0 S/ O* `5 f" q
ceil($num/10))如果一页10记录的话,这个就是总的页数
$ J9 Z2 h0 J3 m- u8 X6 X& ?所以可以这么写6 B6 L" N a* \- F5 @; d: ^
if(empty($_GET['page']))% d2 K9 W% Z5 e. Y9 y- C* Q4 |
{
" g W' s! m0 B: O' |$page=0;5 _' @& m; c5 V4 A- Q6 O; _
}
( T/ c7 N/ I# H' L( `8 ~- kelse
% D& }' r0 j4 W3 h- T9 D{1 c' E' [% h/ a0 K! C* e
$page=$_GET['page'];0 @- m' \# Y$ A/ A4 k
if($page<0)$page=0;4 I: t& _+ m+ n* ?& Q$ V
if($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-1
; A1 g7 j5 m% _; v, M$ c}
# `* Z( I7 D. r5 T z% g" c8 n. x+ q2 q7 D" f
这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";
* S3 g e2 ^ V. U+ R+ D2 [5 t4 v//一页是10记录的& a, L2 Y9 z" C7 U4 {
最后我们需要做的就是几个连接:
( W, a5 V" y* O V7 v5 e<a href="xxx.php?page=0">FirstPage</a>
- `+ r+ x( v% i3 t<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> 0 f! J9 z z+ R
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
2 y- L+ F( V* L# x* V7 V U- J<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
; @9 c% }+ ?/ V
+ R" U1 J( w9 R/ D! m! H0 o) X这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|