|
  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14443
- 金币
- 2507
- 威望
- 1647
- 贡献
- 1455
|
! W" Z- S" F; d: h) E学习目的:做一个分页显示
8 K/ n& T" n' A& d9 E关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num5 w7 [, ^9 j* c/ g% _
, D& W' N0 |' A
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。" L9 `4 u8 q: j' W& E! l
3 r: K( J; f9 c3 X$execc="select count(*) from tablename ";0 i9 c n3 \0 w1 @+ h' ?( b& {
$resultc=mysql_query($execc);
+ ]% Y. ~& _" c$rsc=mysql_fetch_array($resultc);6 z7 X+ g) Z6 B4 P( ~
$num=$rsc[0];
/ W w3 R% e3 a8 g' i `: Y1 C) l* f% t
这样可以得到记录总数% f/ R5 p% r* T" Q3 s
ceil($num/10))如果一页10记录的话,这个就是总的页数1 V. m, v; S$ O7 L
所以可以这么写
5 V- D4 E" V5 \( B S* `if(empty($_GET['page']))& C9 r s# ]5 j1 h& D6 Z8 v* w1 D
{
5 M7 g$ X8 S) j; r. b O$page=0;; E3 J5 N* p; {! C0 S6 J
}
, [6 m5 O0 Y. S$ D1 Y5 ?$ N4 G( Yelse
% d8 x, @6 @$ l0 o1 `/ G{9 ^, }5 ]+ k, s& `- T
$page=$_GET['page'];
* d' _. v, B2 B6 s1 U9 Xif($page<0)$page=0;% J1 ^- M. X' Q5 h& C) d
if($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-1
9 t( U, ^7 R& r" Z* O' Y} 3 e0 N1 t7 U5 T( t+ H& p. m
. j8 G6 x: \& s7 o, S: o这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";
2 @: \. J+ C) d4 S T" V//一页是10记录的
# `7 f# y9 j' {$ N& b% L最后我们需要做的就是几个连接:1 u, a9 G1 Q! {) l. \6 U" s
<a href="xxx.php?page=0">FirstPage</a>
0 D* V! t, K/ {<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> 8 d- ^5 k0 c* H
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
9 x5 O$ s4 V' ~/ k3 ^: B0 D<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
8 Q# s) ~1 o2 s7 R- T; w* T+ u9 \" s4 n3 n1 [# R5 F0 R# D2 x' t2 f% m
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|