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

十天学会php之第八天


& C" _7 X: w1 Z* e  c学习目的:做一个分页显示' }9 O3 g1 X8 c( j
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num0 i7 N$ }4 u2 ^0 U3 U) ~( K# O

) V! a1 n, w3 g对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。

6 I4 X  `" W; N5 u4 ?1 O' }$ Y. r1 M. J% s6 K+ [
$execc="select count(*) from tablename ";) T/ e5 k+ M. H6 p
$resultc=mysql_query($execc);
; c- g& Q0 m. B5 H$rsc=mysql_fetch_array($resultc);* h2 p7 \/ h0 Z$ J% N
$num=$rsc[0];  `/ E% Q2 P; Z9 c; V
9 A& W2 }+ k" \6 a) V
这样可以得到记录总数% Y, {" ~$ j; f+ J5 x4 I
ceil($num/10))如果一页10记录的话,这个就是总的页数, d0 u' n. B4 n2 D' F' n
所以可以这么写
% g; p+ H* ?1 Gif(empty($_GET['page']))
0 C; X! ^% w, w) t{
6 \5 O; r9 }  D& z" s, N4 ]$page=0;
* u' n) u! L4 E% E" Q" e  s}
* W+ v+ l+ ~( n8 p  Lelse
: u( ]: g) K* }8 ]1 V{
& G* q% E5 q- b! x; C; G9 m' U$page=$_GET['page'];
, I( s* f0 O6 V5 ~if($page<0)$page=0;9 b8 z3 i( T1 [, X
if($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-1
8 F! }* D/ X7 }: N& e} " q) E3 `) a# Y
6 Q# ]: {4 v1 P
这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";
2 W) R# C! u* i: U( l$ K2 N//一页是10记录的

- P1 A* U" _# H最后我们需要做的就是几个连接:7 q9 v  X) K' _6 G1 ?& f
<a href="xxx.php?page=0">FirstPage</a> 4 X$ J( M) R/ V$ H% y
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
3 k! J7 x6 v9 [1 n1 f<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> ( w5 `, q- w' o* y# q& N
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
6 M8 s7 Y" ^; y# }  U: M) @2 t7 ~+ r# r
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

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