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

十天学会php之第八天

5 y( b1 Q: G; U
学习目的:做一个分页显示
5 I, g+ `2 }3 h+ N% B关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num8 G) Z; a. z% `5 f

2 X6 }6 C- L0 p0 E$ u对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。

5 }7 D5 T0 P9 m, s1 r2 \2 B) l' ~& L/ |5 o0 c$ r- @* \/ N
$execc="select count(*) from tablename ";
" i# E& l. u$ ?4 _% Y$resultc=mysql_query($execc);
: g; j" }2 b& h$ N, n$rsc=mysql_fetch_array($resultc);' c; c$ q; ~/ d
$num=$rsc[0];- g2 j) J( R9 p# ^
: \' x/ D' q4 G8 r+ Z# t
这样可以得到记录总数5 G' X  p  f. I4 C! g6 u5 J
ceil($num/10))如果一页10记录的话,这个就是总的页数
  J: G2 ?# i: @所以可以这么写6 _' j; N; T: |9 F
if(empty($_GET['page']))
( e! m9 l" r# Z( c$ p; F/ d2 i{
& W6 c0 f( x6 z  |$ }$page=0;- r( ^' x# d7 k. h, D- {
}
  s7 w3 M: A) T( f! [else
( N: t& E2 m5 X0 o* S- b4 |{6 i5 a: u$ [$ V) d; B
$page=$_GET['page'];
  O2 @' |# \+ h6 oif($page<0)$page=0;/ L) b  D( k# u
if($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-1" I- P6 c5 ?8 ~4 ]$ w$ g# V2 V3 j
}
5 t, O9 s5 ~2 D2 H/ C" y7 H2 C: o. c9 A! o6 J% a2 h
这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";
: D0 Y1 Y2 B* r; r. V0 R//一页是10记录的

3 C* B1 z: ]! ^: q6 m3 x: D- l% B最后我们需要做的就是几个连接:8 f5 N1 x# R5 r" a# ]7 ?
<a href="xxx.php?page=0">FirstPage</a>
# G/ s! Z! C7 {* Q) ]/ B0 b<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
! I6 ~% ^. o, _  R* b<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> : {( N) m1 {. y2 y5 D, Z
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
  W: `) m" w6 ]  W2 O" C8 r7 c; j; q* D, o( L
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

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