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

十天学会php之第八天


9 a8 \# C% C8 f5 Q( f- q- m学习目的:做一个分页显示" y  J; m& a# `) ~5 z
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num! D: z+ U# t( I2 n/ M  @

8 M- H7 S& R* S$ o2 k8 F对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。

, ]- e0 S4 m; @/ D, |
, H1 t& W% Q0 m- I; _' C$execc="select count(*) from tablename ";7 `! ^' _! ?& x/ n( G  J+ [
$resultc=mysql_query($execc);
: X$ d6 ~. t3 i$rsc=mysql_fetch_array($resultc);
: N" U! i- Y6 T8 g$num=$rsc[0];
" [7 r: u: ?9 q. h+ y: f
: p7 O: A. o8 k& V+ j
这样可以得到记录总数9 L# `  G$ {) }$ t4 o
ceil($num/10))如果一页10记录的话,这个就是总的页数! w, K  h! p" l. u6 e
所以可以这么写! {5 @  c% A1 L% t
if(empty($_GET['page']))' l1 Q: q$ i; g, N
{- Z, A& h! R. l7 y8 s3 c1 o: F; q. g
$page=0;
4 y8 j& v* {; O/ p1 ~& z- [6 o" K}" ^$ o5 j$ r2 q: n7 {6 Q
else
) r6 `) X8 Z% {7 F{
* p3 B7 v! `) K- u; i$page=$_GET['page'];
: Q3 G9 ^7 }: }. xif($page<0)$page=0;  b7 H. D4 y0 P+ f# Z& c6 t
if($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-1
# ]" W6 x" a1 V}
( D; A4 _; y4 w8 N" C) a2 m: {) f1 H* k, ~8 F  {
这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";# e8 t2 j: ~+ e/ Q# Z$ L- {
//一页是10记录的
0 p( X4 A& B' W- N
最后我们需要做的就是几个连接:1 S. h$ _8 m- S5 V& r5 A
<a href="xxx.php?page=0">FirstPage</a> 4 m" D5 T; @9 }+ e9 v0 _
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> 4 s/ q1 s& v7 b: C1 j! s1 ^
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
1 o0 E% R8 Z# i: }& I4 v& @& R4 v<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
' j. P8 e% E( j$ W) S
7 Q; z: \! Q- |2 R6 w' R
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

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