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

十天学会php之第八天


4 i8 ^" x/ P  x& o" L" v学习目的:做一个分页显示$ X* \" L' T) M1 z5 r
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num$ n+ B0 j; P& G6 K
$ d3 t* I! G3 C1 {# r
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
; m9 H# L+ _1 E0 d. z8 E  `0 [* g
( b7 [4 n$ U8 X! G  J5 `# I
$execc="select count(*) from tablename ";
( p& E$ E$ ]: V$resultc=mysql_query($execc);
  a; B( m. m, U* _+ @. e# D$rsc=mysql_fetch_array($resultc);
: `( O. W3 G* g! f9 e* I$num=$rsc[0];
- p9 ]) V: e4 S9 W+ r1 q: P
( ^0 b* G( ?! f! O5 M- h8 T
这样可以得到记录总数
) {* R5 V  t% ^8 [2 iceil($num/10))如果一页10记录的话,这个就是总的页数
! o4 }6 u! _# F/ f7 [/ N所以可以这么写9 f( R8 ~% |5 X
if(empty($_GET['page']))1 D5 j1 s" u( `" w1 y) d; O
{
# {0 o$ U- r* v& v$page=0;! X) f5 c' o! i* L) e3 P
}
) ~2 M4 ^3 O: R9 m$ F* telse  ~1 Y& C' n1 k
{& r: i9 Y5 v) c
$page=$_GET['page'];
2 y+ K2 N1 F/ T" t! X4 E+ Iif($page<0)$page=0;
# y6 S. k& N' m( E: y& s: vif($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-1
3 D" }1 Y! A& `3 K: f2 |}
$ @4 G) B& l" N1 \" S4 P9 u2 r1 a/ K. M2 j
这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";
& D6 ?- H2 c: G9 J2 ^* y& L//一页是10记录的
2 U# H8 _2 P8 Y5 m3 Y: g4 I
最后我们需要做的就是几个连接:8 |$ e) R3 u  |) @% [+ i
<a href="xxx.php?page=0">FirstPage</a>
( @% o+ ^# k2 |4 O& |2 ^<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> 1 {* N7 b* }' n4 k7 B9 K* w
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
0 F% v, ]5 G& n8 P<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
$ U# s: S+ }2 [9 y' x. q# c7 L6 s! ^$ c3 @
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

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