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

十天学会php之第八天

5 k7 a$ V6 J! D' d) |% v1 e
学习目的:做一个分页显示" L* A# {& j9 b( l
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num7 \. S1 V  w2 e. u+ a* `

- h/ z' I% C% V) l) `对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。

! K( ^5 S6 Q' M# j# }0 \! G$ A5 u$ I
$execc="select count(*) from tablename ";
7 A! N0 R; u+ h& u) |4 h9 z$resultc=mysql_query($execc);
" b7 O3 [: R- V- O$rsc=mysql_fetch_array($resultc);$ G/ ^% C" r3 k9 T! Z
$num=$rsc[0];, [  M6 |  ]! B

7 p5 T8 N! I. I' X6 }: ?; I
这样可以得到记录总数/ O1 d' X' D; L. Q# k5 N
ceil($num/10))如果一页10记录的话,这个就是总的页数
1 c9 L0 _' i, r  V. t所以可以这么写  F0 x$ r7 m  K$ e1 ]
if(empty($_GET['page']))1 F9 n9 M! h2 p  P1 R! J
{, U* c) e" T6 r* [) _8 t6 }
$page=0;+ ?7 e% @$ y( z4 b& {
}0 Q) R; M6 V+ a. @2 V
else
" h2 f2 T% H. M; R! j' H{
; A" W7 f0 Z- N3 B# p" J$page=$_GET['page'];
& C) Q8 r: @; i; S5 g5 ^5 i8 y; X, ]if($page<0)$page=0;' Q5 ~2 P- W4 y
if($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-1
( p% }/ a8 t" V, p}
- s- ]# B0 s- z, l/ K! E: s9 d, N2 h' D. {- a
这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";
3 L+ a: K5 r, Z3 J//一页是10记录的

0 w; h# V6 h* V' G# T* [( m" O8 M最后我们需要做的就是几个连接:
( ]6 E1 e3 e" E6 \5 B% ?8 g# i: G<a href="xxx.php?page=0">FirstPage</a>
# W& f! y. W# N, q4 W<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> & P* Z/ l% D; Z
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
8 T) s6 K: ^; `6 C+ y9 @0 G<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>2 B3 a1 w' ], u
4 v# O5 s) T3 P  _) a9 E
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

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