获得本站免费赞助空间请点这里
返回列表 发帖

十天学会php之第八天

% q, v; w$ Q  ]  X$ E; I* l
学习目的:做一个分页显示
0 l/ C2 C  ~. A/ o关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num- J- A3 f) }' `( A% m
* s. c' F  c2 s" ~
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
0 A5 |5 X+ @: c# p
; H( B( x& R& f
$execc="select count(*) from tablename ";1 S& {/ m- D) a
$resultc=mysql_query($execc);
( h$ z( z2 E* o3 C& S- e! N$rsc=mysql_fetch_array($resultc);* S( @( p6 r. c2 }+ Q
$num=$rsc[0];; V- O4 h; W; g& E/ J' ]
1 G$ Q1 P( Q* ]8 G# m( g
这样可以得到记录总数
6 W1 o' o% a, H5 Lceil($num/10))如果一页10记录的话,这个就是总的页数6 E5 A+ P2 U2 I
所以可以这么写' Q2 H) r  p1 h2 o! b
if(empty($_GET['page']))
5 X. t( `7 j5 ?- S% S{
! Y: S4 \+ o5 m4 S$page=0;- p- m5 `4 g5 q2 q' E
}
- R" R. W6 b* \/ ~  l. w% B1 c' Helse
6 n  c* }$ R9 R% D9 |" y4 T  Z3 H{
0 Y2 Y+ d+ u3 y3 K$page=$_GET['page'];+ C7 H; V8 E$ y# ~5 p8 e
if($page<0)$page=0;2 t+ P) {, w5 X; m2 u2 U# b+ y
if($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-1" w. J' _) t! @7 g% ^' Z# J
} , e  g  M  t/ ^) ~) O
7 ]) ]; v! M: ]3 b, f8 A$ `5 k
这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";) m1 ?% R5 Y5 I7 K  W
//一页是10记录的
9 q+ S& _8 X  v+ Z( q6 u
最后我们需要做的就是几个连接:* g4 M1 ~- v# e6 `
<a href="xxx.php?page=0">FirstPage</a>
) S7 J4 j( c8 O8 r* f- H<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
. \* v: ^3 S% ?# o<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
- F5 i! n& W: o/ |9 f<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>& q; F7 `2 z" U% g" r

/ }- U9 b9 u: w
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

返回列表
【捌玖网络】已经运行: