  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14171
- 金币
- 2376
- 威望
- 1647
- 贡献
- 1324
|
- I* ]! _0 Z: w3 ^学习目的:做一个分页显示% h4 w6 Z* _0 G b
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num
& m) E$ u1 z a! y: |! Z3 a+ }8 Y7 I* n1 `. B& v
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。; k/ P3 q9 F5 g8 d9 F6 k
/ ?7 G! m/ ]" e3 F$execc="select count(*) from tablename ";$ \: f7 \4 R+ M& W& r: q
$resultc=mysql_query($execc);, I$ y/ y1 e0 L, G8 {! k+ |
$rsc=mysql_fetch_array($resultc);
4 k, M/ t1 p) F& _$num=$rsc[0];1 ~0 V# L }: R( M! U
6 J4 x3 _5 \+ B- A这样可以得到记录总数3 D5 d* k. Z/ r' o1 o) U
ceil($num/10))如果一页10记录的话,这个就是总的页数. n1 b' `, U. u a6 v! r2 q# f
所以可以这么写
& R# K8 B: D) }- a6 k! ]: dif(empty($_GET['page']))
; F7 l) i% f6 Q9 p7 n& |{
6 O+ V2 U. R1 g; k" n4 B; C& s$page=0;+ C( F1 ]9 W0 v6 Z
}
9 ?0 b5 b. K' T8 x: ^) \2 ^ ielse1 Z) o4 R7 N3 P# k8 Y$ i5 i: Q( o
{
. s- b5 C- s& A# q$page=$_GET['page'];* r/ Y# W) w2 P+ e% Q1 v: x
if($page<0)$page=0;* j+ [/ e$ E' [7 r, G3 F8 l$ G4 N
if($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-1
$ i! I6 ^% T: F" X8 v}
6 n' I+ C3 k$ N% @! p0 F2 F8 ~8 Q6 M/ D* S
这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";* a! U2 A0 q7 g5 k- R! K7 P. V; E
//一页是10记录的
2 P) { |- r: s5 k X/ ~% I9 {最后我们需要做的就是几个连接:
; L6 h! {: P& ` v9 `, P<a href="xxx.php?page=0">FirstPage</a> ; w. V- L* n! Y/ {$ j8 S$ g
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
7 p/ N2 v7 r4 a1 m+ i<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> 2 O5 \5 I) T% k/ e9 r
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
" d, ?' \* |4 v" [- c1 Q1 G! ?- j4 R. P/ Q# L3 V
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|