  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14249
- 金币
- 2415
- 威望
- 1647
- 贡献
- 1363
|
& W& W3 W! N! Q
学习目的:做一个分页显示
" ^) ?( i7 H, s- ~$ {0 T% d关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num
% x* d7 @* p) ^# C6 M6 _
9 _0 d( ` E) J$ u. H* J对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
' W2 @/ W( j0 o# R) q3 a# c7 O2 O1 k* ? V2 o
$execc="select count(*) from tablename ";- {: o! T" ~1 N/ f) H8 X! O: N
$resultc=mysql_query($execc);6 P. b: I# s* Z
$rsc=mysql_fetch_array($resultc);
% D' W5 {6 r) V( s% ~: Y$num=$rsc[0];
) ^) Z# z' u( ^/ q9 q6 Y# R+ u5 _0 Z7 q. X8 c+ M; k1 d* K
这样可以得到记录总数8 Q% T7 b' m W2 L) H% L: d6 i
ceil($num/10))如果一页10记录的话,这个就是总的页数+ h8 S% W% U) s- A) w9 f
所以可以这么写! ? d+ A, m! {6 q$ ?3 a5 ^
if(empty($_GET['page']))8 L9 u. b; e& [0 }
{
8 F0 p4 m# v) z5 K& E& r8 b2 j* B+ ^$page=0;
9 h) J B! V4 i; \- k, I2 C! y}( e9 R( o- i9 _/ S6 o
else: v) ?9 S' j$ I7 [
{# N& ~3 A- S; |$ W9 B- ^+ c3 `
$page=$_GET['page'];7 v1 t4 T! Z3 J: a1 \
if($page<0)$page=0;
+ M0 L6 W; j) _* Y' zif($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-1
' W- r+ D2 Z% G; n} % R; C$ J8 p4 H# D/ S
9 z) \" s4 _9 Y2 Q. Q1 c8 E% h这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";
$ x% }8 k9 q3 G3 X' z//一页是10记录的
/ L! t# R' n+ [: h, A* g& `最后我们需要做的就是几个连接:
( e' R$ i+ l8 v0 h7 c<a href="xxx.php?page=0">FirstPage</a>
, b+ b Q Z+ |5 L: R<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
4 r$ L7 E! f8 [& i1 ?<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
1 w) B8 V( v2 g+ J# V+ c; ?<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
7 ]- ^' x8 t6 @7 n
: m% k B1 W f" G* l( g5 g这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|