|
  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14341
- 金币
- 2456
- 威望
- 1647
- 贡献
- 1404
|
9 F% c1 Y* {2 c+ u. x2 p学习目的:做一个分页显示
" B1 Z4 R6 M' x关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num4 z' S# h& \ w8 j) i e
' p7 P' Q1 G, a& m对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。& ~5 W* O. L2 Y/ h u2 F! @( v
2 }1 v: d8 z6 J2 D$execc="select count(*) from tablename ";7 r) g. A8 f% `* I: P3 X6 y7 T
$resultc=mysql_query($execc);/ w! f9 z% G$ I) U# ^, }* d/ C
$rsc=mysql_fetch_array($resultc);; F) h! a5 D b1 C$ z' w
$num=$rsc[0];
) h+ A, Z* k2 h0 s( S" M. U: `& h Q& x; }. h! [
这样可以得到记录总数
/ K* o' V6 | _ K C9 Q3 }ceil($num/10))如果一页10记录的话,这个就是总的页数, ^. R4 B3 F4 d1 k
所以可以这么写
# ^4 C) N/ \4 q3 ^# Aif(empty($_GET['page']))
6 R$ P6 W6 `7 f% f6 b; h( M* E{. E9 J/ b' }- Z6 s" L
$page=0;# {" B' r+ R; Z6 ?- ?# P6 k) I* h- ~) l
}
7 l" B( T! b v' J% f6 Nelse/ `9 p {: p# n; @
{- u. C% M# Q( ~
$page=$_GET['page'];
; b9 ^5 z3 J' K# o% sif($page<0)$page=0;
. h ]. D' q1 H! ?! |) n$ kif($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-1- t' m. \- H9 G( D: C6 B; J# [
} # K# T' l5 z4 ?5 n2 G6 O
/ Z& d/ L% T3 j' h& z5 c
这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";
: L) F% \* b: |( m, K% |( k) C//一页是10记录的8 e6 |1 [# M) l3 r/ }/ u
最后我们需要做的就是几个连接:
1 G$ k4 Q) H; c1 ]# L S9 k r<a href="xxx.php?page=0">FirstPage</a>
1 m) z, q! g9 Y9 u<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
7 j" r3 Q$ {/ D0 V( }<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
$ m4 E$ R C- w<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>$ _" S9 g, w4 a. ~
. {! E2 l7 V+ S# F
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|