  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14249
- 金币
- 2415
- 威望
- 1647
- 贡献
- 1363
|
* l; i7 m& E) @$ f3 D学习目的:做一个分页显示. `& S" z8 F/ u+ I, c* v0 W( ?
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num
: ?) y' y! l( ?4 s" t2 i2 _9 l" T- \
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。& j( y1 d0 x% r# m4 y6 m7 P
8 v/ @3 V# B( U1 z& B0 c$execc="select count(*) from tablename ";
8 c" _$ r) Y. Z! k5 e8 h( m! ?$resultc=mysql_query($execc);
0 p$ \- L9 n* \# a" d" W$rsc=mysql_fetch_array($resultc);
. p( C5 g3 c" h5 g5 _) \" i$num=$rsc[0];: m% x4 h; I' s# x
3 Q/ }7 G, R, @7 N" h6 }, T. R, t% y这样可以得到记录总数
+ ]: }( z" ~4 _1 gceil($num/10))如果一页10记录的话,这个就是总的页数
' Z% N/ H/ h$ `8 h1 [所以可以这么写
' J- F* l' [* v8 m% f. K0 R. L* m, Q5 Wif(empty($_GET['page']))
, V2 _. O: H) v. H1 b& y* x# w# k; D{0 C1 U8 m, F4 m; _' G
$page=0;
7 C9 n* |8 E+ g) S+ r}
$ r& t8 _1 V3 e6 x, Yelse: u5 y7 r4 o# e6 C3 k, R% O
{5 y& ]! u% G/ X( n1 v
$page=$_GET['page']; Z1 i& w) f+ f- A
if($page<0)$page=0;: { S! Y) R5 I& ^
if($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-1
9 @( X5 X- s4 i}
$ B; b2 b+ K0 C4 S' ?; S
; e6 ^& w& S# h% z6 W. P! h这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";
3 f" `- d/ D) H/ v0 w7 ]//一页是10记录的
7 A$ i( E. V2 k! I最后我们需要做的就是几个连接:
2 M1 c Z2 f" \7 a6 n<a href="xxx.php?page=0">FirstPage</a> 3 b6 X8 _ a" A3 }
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
( V M# x: @3 Y/ K. X3 m* f9 N<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> . x) _, s: t4 e/ |& H
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>& [. z. O0 y! a- j
! r/ Z6 ~- J# |0 J3 D
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|