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

十天学会php之第八天


" T: D2 _" |. b/ w" o4 P学习目的:做一个分页显示
$ a% b# p- C: \8 {( u" r$ d关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num5 m1 ?5 }  Q; o; O

4 T# Y1 ^% o" W& s$ Q对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
% b! O3 l; G+ d2 w& u* A" C3 ^: U
% w* Q/ O" l7 ~2 A4 l
$execc="select count(*) from tablename ";
& r1 t/ o  e. _$resultc=mysql_query($execc);( |% ]2 y2 I+ u9 C1 R
$rsc=mysql_fetch_array($resultc);4 H  x. w6 ~0 ]: F! O. `
$num=$rsc[0];
; O( N; R# i- H( F7 C. h* \" [8 m3 _( H' U& G
这样可以得到记录总数
5 s- V1 r& V5 v7 E3 U; Kceil($num/10))如果一页10记录的话,这个就是总的页数- ]' ~9 _8 Z  ?( C
所以可以这么写* ]3 ?; r. u8 z
if(empty($_GET['page']))$ t. p7 R: G1 N
{4 \1 |9 o- O5 r6 Y
$page=0;
. |( p/ e. }( l% A/ W. }, H, e2 M}& P. C$ U1 l/ y; V
else5 V) X# c! ?! U4 p2 {) F# ?
{0 L/ [6 |- y, F5 n  v6 c
$page=$_GET['page'];, o3 h$ u7 x1 G/ `) @
if($page<0)$page=0;" ]% H3 K3 T2 b3 _
if($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-1& M& x7 O! g" A
}
( H1 L! v) T( W) H8 r. u+ P( k4 q. {3 g1 W" p
这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";7 O+ x0 `$ o6 D" `- H
//一页是10记录的

+ c3 x6 ]! H: o, L最后我们需要做的就是几个连接:
6 v5 d: ]9 b5 ~+ h<a href="xxx.php?page=0">FirstPage</a> ! \) F: Z% p, k
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
. |1 N& e. I9 o<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
# M9 }5 E- Y) [  A: g<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>9 B1 M! }, R, z% a/ P
6 m/ S4 w7 O4 ]% c6 ^9 a
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

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