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

十天学会php之第八天


  S' W/ t1 Z( ?# c% y' n& Z学习目的:做一个分页显示
) B2 G7 ^5 v7 R/ ]# y5 `关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num5 |0 Y/ Y0 Z3 g& {% Q! k

6 \/ z7 I+ x! W$ a# i- c对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。

0 a* K! f) Y" S# L  Q. d
5 i* R* G! ~) S7 Y& Z) S$execc="select count(*) from tablename ";
9 f4 ?* x' o2 L7 z6 `* t6 z( r$resultc=mysql_query($execc);& F" _- U( r9 c
$rsc=mysql_fetch_array($resultc);
& |7 ?( p" v& h8 @9 Y$ t$num=$rsc[0];
+ O% s9 B$ w* }
* H9 \: v: c, W$ e
这样可以得到记录总数0 S8 H) @0 E1 X( b( r
ceil($num/10))如果一页10记录的话,这个就是总的页数
  v' \" X  w) Y( @. W7 u所以可以这么写
( q) u" i& N1 A' H4 Jif(empty($_GET['page']))
0 U5 u7 V7 y0 D2 O$ [" X& `{5 q" c  l6 x) m- B
$page=0;+ m) c  [9 U+ B+ ~: D
}
) L" e% a5 T- Z0 _1 |- Kelse
$ I3 R5 O0 o7 D4 B4 C{
- u) K) W) H9 W6 e7 I$page=$_GET['page'];
6 A2 I( C. b0 d" ^if($page<0)$page=0;% P5 X7 Y( s# N" }5 @1 T+ @% |+ K
if($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-1
; W$ Z, e5 m; w$ ~- M! }}
$ u. Q, g5 Q! C( X/ T# P+ ]. H$ D  g3 P5 V2 z. P
这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";
1 E3 O, }0 `* o4 w0 ]1 m//一页是10记录的

9 z9 s/ G/ q1 j  c最后我们需要做的就是几个连接:: \1 B. t' B6 l3 D/ J9 w# V
<a href="xxx.php?page=0">FirstPage</a>
1 T- i9 n! V7 G0 X  d+ W<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> - }; q* z6 Q3 v
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> 3 r4 ]1 k+ P3 U3 B+ ?
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
2 @! j6 W6 g' q2 D1 q4 b/ u
# w6 P% E: E2 n+ r2 J
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

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