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

十天学会php之第八天


# I# F# p  C4 J, z学习目的:做一个分页显示
/ k% B% ^# Q1 M8 m/ B% q关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num
' E1 G( g# z8 Z0 G8 |) l
; w; z7 F$ V. v; }/ o* n对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
0 \' f% i- Q- i% t; p
& E  t  ^, S2 \: y  O
$execc="select count(*) from tablename ";5 k) a6 Z# b* [8 V
$resultc=mysql_query($execc);
7 R, O* v8 a# }( h$rsc=mysql_fetch_array($resultc);) F5 T/ i3 i% O( H- l0 H1 i
$num=$rsc[0];
* O* d1 Z  s, ?/ J5 D7 l. ?7 W7 B" K7 j, [
这样可以得到记录总数7 g0 k6 j- r" N( d/ b
ceil($num/10))如果一页10记录的话,这个就是总的页数
0 o  I' v8 Y: f! q- g" ~所以可以这么写
9 K8 e9 d; H* }2 W- ]) G- }9 ]' `2 [if(empty($_GET['page']))  x  U" o! Y- v' k
{' T) g1 C2 [1 G2 N/ y
$page=0;) V' q( y3 Z; \% m' H
}
& K3 L8 Y" Z, T5 z5 j  c) f1 P% Jelse0 [2 T0 s7 q* T& N
{
; v5 p5 z6 Q$ e' E' n# }! ~) g$page=$_GET['page'];
6 L$ D# t& z3 l0 t7 O1 E! hif($page<0)$page=0;3 U: T# d* h& q7 U. j0 O# e
if($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-1
9 W  a* r: s) C& i} 1 E+ v) e+ f1 I  o0 `; ?* M
( H+ N8 {  n! H" C: S! F! c
这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";
4 D) ^5 D3 C+ I5 N/ V3 F  |% B% l//一页是10记录的

. \; t0 H* J6 e2 v. R最后我们需要做的就是几个连接:
' q' @, p: }* Q3 e1 k; Z% }' g<a href="xxx.php?page=0">FirstPage</a>
( U$ x; G% @: `: {4 t; L/ o0 L<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
9 Q7 |- F: a, m+ L( B<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> 3 {& {( l# a* ?) f
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
6 ]5 v& V+ I: S5 X) N4 I1 d5 z- e  w% c: j- W) `/ h( ^
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

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