标题:
十天学会php之第八天
[打印本页]
作者:
admin
时间:
2008-3-26 16:40
标题:
十天学会php之第八天
8 F+ {6 U: s, l+ L/ Q3 W* }
学习目的:做一个分页显示
& C% w( g, o& M4 Z
关键就是用到了
SQL
语句中的
limit
来限定显示的记录从几到几。我们需要一个记录当前页的变量
$page
,还需要总共的记录数
$num
5 f; {4 }4 k; ^5 u4 g' J" P
) Y; o7 A, d$ Z' Z W9 R
对于
$page
如果没有我们就让它
=0
,如果有
<0
就让它也
=0
,如果超过了总的页数就让他
=
总的页数。
% c* Y" ]/ N; ^+ q1 p0 `7 e
' T9 ~9 T4 T# j/ f; m
$execc="select count(*) from tablename ";
0 D$ ]; @# C2 ^8 ~1 u8 r4 ] `
$resultc=mysql_query($execc);
4 `* L% S' t' K0 ]+ w+ M. |
$rsc=mysql_fetch_array($resultc);
3 y9 G5 O' u* d$ H. o- C
$num=$rsc[0];
! m6 j" o$ e; S X
9 E/ N/ m1 a o" {3 {4 p& V1 D
这样可以得到记录总数
2 Y: I0 N6 H7 T6 V9 b1 E( k
ceil($num/10))
如果一页
10
记录的话,这个就是总的页数
2 a. y0 i+ B' ^9 y
所以可以这么写
7 b l" }3 v" K6 c9 d- c
if(empty($_GET['page']))
+ ]$ s4 G4 l2 ^8 Z: V
{
! b2 ^4 c& ]+ y N* m' e
$page=0;
; H9 Y1 b6 _+ R# M; u# R. y
}
/ V& s( l/ M: G! X9 b! B
else
0 F5 e' |3 {/ [+ Y
{
* e/ K/ ^, I& g1 @. ~
$page=$_GET['page'];
) J0 }. e* w2 t$ s g7 o4 O6 n H
if($page<0)$page=0;
) o2 p0 \6 t0 J8 J! Y
if($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为
page
是从
0
开始的,所以要
-1
! E+ ~, ^. H* L( p& s
}
: I$ |( b' D5 M; \! h5 _& z
- }9 o/ M% N- h2 A
这样
$exec
可以这么写
$exec="select * from tablename limit ".($page*10).",10";
0 C0 {7 d/ R; P8 m- m) s
//
一页是
10
记录的
) d; Y9 L' X2 |% s7 h) y, x
最后我们需要做的就是几个连接:
; _9 x4 B- n, ]) L
<a href="xxx.php?page=0">FirstPage</a>
+ q* \/ p" c! g% C+ W, _7 d
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
& ?( g: _3 _* K6 b4 k
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
- a5 q! s, }; j' E7 t
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
7 W: X- s) J4 \. S! E
2 m7 h3 a( v: |; q
这是一个大致的思路,大家可以想想怎么来优化?十天学会
php
之第八天就说到这里,第九天说一下一些注意的问题。
欢迎光临 捌玖网络工作室 (http://89w.org/)
Powered by Discuz! 7.2