  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14171
- 金币
- 2376
- 威望
- 1647
- 贡献
- 1324
|
( X+ k, `" n2 R) \ n F0 l* ^
学习目的:做一个分页显示. m$ z8 c q; }/ T
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num
9 i' M) Z* | \* y5 t" z3 @+ ~& L \ d9 r' z
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。& G$ M1 l l2 z2 M) s6 E
, f; @3 t. M0 n
$execc="select count(*) from tablename ";/ S. U2 J% v% x7 N: V7 q
$resultc=mysql_query($execc);) p4 }6 G( o! ]9 T
$rsc=mysql_fetch_array($resultc);# Y( Q: c# p- n( N7 b% K, m
$num=$rsc[0];
5 `4 ^- ~( l6 J/ P) B; C, j; O8 P! m" j7 a# J% g
这样可以得到记录总数- s/ S/ \. i X+ E a
ceil($num/10))如果一页10记录的话,这个就是总的页数
( R' {" C. g! U) s) {0 W2 [7 ~所以可以这么写9 j. ^2 }6 e: z# \3 P7 K# c4 _
if(empty($_GET['page']))3 u/ i- v8 g% U9 b T) I# ]
{
) r4 ?# u# o9 F6 O/ ~$page=0;
4 X1 S$ Q$ x9 Z8 C# {}
5 j4 ?7 p6 ~: `else' ^% T" J6 O, y3 k, i. ^9 R
{- r0 y a+ u1 ^3 b
$page=$_GET['page'];0 B+ b, \. q+ t$ b) H
if($page<0)$page=0;- ]$ T1 @. F# Y
if($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-16 t5 B$ I3 G9 N9 D* t+ p% O
} $ h& E3 Z0 c: a: V: s! ^
8 f1 k, m, y+ B" d2 F这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";
2 y9 n( h6 H; t/ J7 V* c//一页是10记录的- }* ~3 t' C( d
最后我们需要做的就是几个连接:/ [6 x4 N5 p0 s
<a href="xxx.php?page=0">FirstPage</a>
5 t6 J9 j" }6 \0 _: @<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> " w1 f. Z3 S/ M _
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
. t( q! K# T7 b" ~/ E. n5 Q<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
7 A% f E7 O2 O6 d, o
* j4 p1 ?4 A" E2 | B这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|