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

十天学会php之第八天


5 }; X1 [* t$ ?0 d5 P学习目的:做一个分页显示1 I- c7 z; v- M4 g% f
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num7 Y9 \, r& }0 L6 d
, B) ^! ^; o2 I' A9 Y
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。

) i* P5 {; n7 q  O1 y0 E1 w5 p6 j/ {" i1 j) m  M* |
$execc="select count(*) from tablename ";  ^. G9 W: ?) E% C# j2 u$ J/ F- ?. V
$resultc=mysql_query($execc);
: X9 b5 A3 R# Q- a$rsc=mysql_fetch_array($resultc);1 ~' A2 j3 V. ]" t9 T& t+ l5 ~
$num=$rsc[0];
" J# `  l/ }, N+ e" K9 z1 E
8 P2 ]# V" g. Z# a
这样可以得到记录总数) ~' P! A! c; [! R; {
ceil($num/10))如果一页10记录的话,这个就是总的页数
. L# Y6 ?0 O7 c所以可以这么写' @# D' A3 b6 L) c* P0 U
if(empty($_GET['page'])): h. ?, n2 N- T% p% a
{
: V# u1 Y9 s2 L$page=0;( R1 s& p3 ~  z- ?( v
}; l$ @. L, i0 @1 K
else5 h8 d& P6 l, z, n) u9 h
{
8 r3 G* @* r6 {2 h/ i$page=$_GET['page'];
$ ?/ r0 E: x. a% U# K4 Q: Oif($page<0)$page=0;
4 f9 H3 \- v+ L* sif($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-1
  L+ D( ?1 p+ O' C# K' m/ {% R2 U} 6 `. n; T( V8 t# J
4 @' c, o; ~: `! k" f
这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";" _* r! l" n" R7 B( m$ y
//一页是10记录的
, c3 M* m" [, }8 P1 [: W% j0 B* C6 c
最后我们需要做的就是几个连接:
9 A& U- i* C# R9 L7 q5 N<a href="xxx.php?page=0">FirstPage</a>
) ]; s8 t* _4 M; R) n2 p<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> 8 j6 k" o7 ?$ X! n
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> + a2 m4 \0 c. r& r. i& F
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>% T9 \' u. k- q  }9 l" j3 n2 \) t
# p( Y! L: ?) f$ J% ~) I* C
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

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