  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14159
- 金币
- 2370
- 威望
- 1647
- 贡献
- 1318
|
6 v$ ?# R/ O: g学习目的:做一个分页显示
2 p% b8 c# y! n/ X5 c6 B7 i关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num( E) _) v! y( G, q6 S
7 _! {& X, }3 R+ g对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。0 O1 d' ^* F' @% Q& s2 a
" C) ^ N* }0 U
$execc="select count(*) from tablename ";
& E; c4 E P. I; D# K; N; ^$resultc=mysql_query($execc);0 N* B9 y& K4 m6 @* N c
$rsc=mysql_fetch_array($resultc);
# t2 Z$ a& ]9 k" T, g$num=$rsc[0];
% w% @! A* q; s; L2 D* O9 M1 W% q1 C6 y. S' F" N, e
这样可以得到记录总数# G" y7 R# A1 F
ceil($num/10))如果一页10记录的话,这个就是总的页数
4 \; |0 y9 I# ^所以可以这么写/ K; f* u( C$ l, y+ n7 _5 E
if(empty($_GET['page'])): E Y7 s$ V. r7 A7 E
{5 N$ `9 U! Y7 J" K. a8 I F, O
$page=0;( P- H& P$ _; M- K1 z" Z
}
& B/ g% z( j! m H8 E4 \1 @else' Y: n2 X- ?: c$ n& z8 k
{
, d- b. z2 R4 z& l4 D7 i$page=$_GET['page'];- `! e5 X& o: H! J' f* H
if($page<0)$page=0;% ]9 R' w( ~- Z) C5 G' o7 F* Q
if($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-1
2 X& U: x2 `0 q} 3 G a& }- _( V# ~* x0 P
+ a: y* _3 F0 t# i: J这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";
/ e1 m6 q' {* m5 Z3 o//一页是10记录的; g+ _; i x. ^- ~1 `6 Q
最后我们需要做的就是几个连接:
6 V: i3 F9 d0 x8 x<a href="xxx.php?page=0">FirstPage</a> $ G& \1 J+ A% y& N$ X. p, X& y# H
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> ) G$ l- q; y: J( A
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> + ^& v+ ]7 o' U5 |* c8 d) F& K" _' B
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>; Y; ~2 M( ~7 ]$ g& k/ t7 [, j
$ N! S, q# o/ r0 l( o
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|