|
  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14325
- 金币
- 2448
- 威望
- 1647
- 贡献
- 1396
|
! X* D5 E; _0 D! q学习目的:做一个分页显示, e- \; h7 O) R& r% j6 j" Z7 g
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num1 n3 _5 ?: C" [" Y
) N4 |/ G! K, Q) m! e- d H
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
7 N( |' u2 [3 J# J6 P) a7 J" Y: B9 Q& {/ Y" p% Z" E4 T) g0 y
$execc="select count(*) from tablename ";( [6 E7 t3 s: @+ [( y' C
$resultc=mysql_query($execc);
( `( t5 V" _6 _2 X# z' O$rsc=mysql_fetch_array($resultc);
0 p$ l. N. X& v+ e$num=$rsc[0];
; ^! w: r! l9 H! I3 o( c* {' H8 N* y! `$ A3 \! `8 ?
这样可以得到记录总数" i0 I4 u4 K( J+ r& o+ s0 `
ceil($num/10))如果一页10记录的话,这个就是总的页数( e1 ]3 b8 R( X( F- h- e4 e
所以可以这么写
: {& \: M* U: Uif(empty($_GET['page']))4 \2 L7 Y4 B' c, o* W0 U+ N" I
{
( x, r4 p! m3 d: g$page=0;
+ }+ y. e4 g* l7 o" P}
4 {: C, J t) X2 r9 E0 l, Lelse
: ]2 Q2 G4 |, J/ ?) p' Q7 m{' x% v, y$ s2 V( {
$page=$_GET['page'];, z! }# Q4 O, T Q4 s2 r0 n
if($page<0)$page=0;9 [2 W! _1 d- b$ c& ~# m( s- f: ~( K
if($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-1
' ? v2 h) G0 G6 Y$ e} / o3 ^- f2 Q2 G1 ?4 }
5 h5 @0 k" P1 l$ K; W+ |) Z
这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";
& C. `3 d# W, R* ]! D+ ]//一页是10记录的
% ^; o9 d; Y/ o7 G+ a6 R. [' n最后我们需要做的就是几个连接:
4 l) u0 ~- {- [. c2 w6 {<a href="xxx.php?page=0">FirstPage</a> 6 b- ~% C& _8 R: G
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> % y' P4 u, c2 ^8 l: ~
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
' r( J9 c% H3 R<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
2 b: K. O! x9 u2 D+ t; p$ \& P
% u$ M& w. L, D% e这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|