|
  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14389
- 金币
- 2480
- 威望
- 1647
- 贡献
- 1428
|
( `) u8 {, i2 Q6 i学习目的:做一个分页显示& p" g5 x9 N8 e! W
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num
0 Q2 p+ ^) a: [% r" x
+ C% P7 \/ e; C$ v对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
" w# Y ?9 I+ O, y% V8 H% X* j+ ]1 m5 v: U9 _8 K
$execc="select count(*) from tablename ";2 x" G3 R& n% a7 ?: s* T; k6 C+ F
$resultc=mysql_query($execc);- b% y, \& h+ n/ z
$rsc=mysql_fetch_array($resultc);! o5 g" H5 @7 d
$num=$rsc[0];. d, E) G! B2 |9 V
+ h. A# _! H8 R; p5 ~2 s
这样可以得到记录总数
0 ?7 h& Q6 J7 ^# A8 ^ceil($num/10))如果一页10记录的话,这个就是总的页数
|; A, u$ ~: }1 T" l1 V1 Y所以可以这么写) h, t1 F7 Z5 { ~ k6 E# O8 T
if(empty($_GET['page']))$ y" q1 _1 M2 F7 M8 f5 o
{
& Q& B& |. ?6 m" }5 y8 `$page=0;
% F8 E3 F" Y6 r6 L6 [3 b# a}% y8 C7 j) P2 q2 r! e9 c) d3 B
else
% ~+ i7 D5 k' ^( `3 N; ^{# t" B6 @9 w0 r* {
$page=$_GET['page'];
0 E/ q5 m P1 N/ }" e2 q f/ ~if($page<0)$page=0;3 }% s1 h# c+ `# }9 ]2 S( b9 I
if($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-1
- B6 j+ ~4 ?+ }, T; W* j& Z} / P/ v+ e% O& `6 ?2 J
$ x- n3 F3 ~' \
这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";, M2 L, b! L1 Q/ n$ `/ n' W' ^
//一页是10记录的 Q6 f' _9 J, R( L, X
最后我们需要做的就是几个连接:, ]/ P! d: _2 s4 }6 N
<a href="xxx.php?page=0">FirstPage</a> 8 V/ Z! O" w; {% v- d/ m4 y7 t& Y) e
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> % F2 p& K. V: t5 L! I
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> , k/ Q p& k( X4 o0 ]6 X9 G& V
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
4 D6 l+ U/ s3 V+ N; a5 z. B: K. G2 C" o' ]
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|