|
  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14433
- 金币
- 2502
- 威望
- 1647
- 贡献
- 1450
|
6 g3 r9 h# \" H( I8 L
学习目的:做一个分页显示
5 ^4 |$ d( g6 X$ p& H I关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num4 H6 h' I7 m; l' l+ z C9 Y
: s! l+ W! K0 B2 e p
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
% ?4 ?9 ?6 R8 T! ^8 t
2 Z1 G6 h6 Z( @3 ]$execc="select count(*) from tablename ";
1 O+ y" _; n8 s8 u/ g3 D( K$resultc=mysql_query($execc);; l \3 P# O2 V- W: y* U
$rsc=mysql_fetch_array($resultc);/ u' G9 c4 X) O- k8 K
$num=$rsc[0];9 ^' g) B2 j" }0 n" t
0 f) h* k c9 {1 q! l这样可以得到记录总数
% H' f" k& U6 @+ Nceil($num/10))如果一页10记录的话,这个就是总的页数
) t5 V$ r3 N* V/ V0 G$ S: n" i所以可以这么写
' r' N3 X# g7 s- m" v3 ]$ j& c% j* \, |: B5 Jif(empty($_GET['page']))' C& t" Q0 p/ k1 i
{5 m2 K" K3 A3 u. x6 x
$page=0;
' k! v" ^; _: J- {2 I! [/ B# V}
" U$ B* L u' _. R! l$ v* o1 Yelse
# ~& J+ M; [' \4 _{
* V6 @' b& _; o" l# G2 j1 F$page=$_GET['page'];! I6 ^3 L- F* p! x& n9 `
if($page<0)$page=0;
& |9 N% h% `* g, I6 ~8 {if($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-1* P0 J3 z/ ~4 T$ L8 W: _
} 8 d2 P0 j2 m! V; F8 u- L2 r
# J7 j7 `6 p- n5 n( ^0 s3 V# ^这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";' ~9 J: V( P" B0 T" I" e
//一页是10记录的+ i K' _4 ?+ @, e# ^( ?
最后我们需要做的就是几个连接:
- N% X d, w) K7 ~, T9 f- t<a href="xxx.php?page=0">FirstPage</a>
5 m3 l0 w4 l+ N<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
, Q' w+ ]1 w. p1 |( B8 k7 A, h. e2 V# U<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> 1 o7 A( C/ c1 k0 }! k4 l8 |! E
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>3 t' S, M5 F, U* J4 h
4 h8 I: c6 ~. G% B& v这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|