标题:
十天学会php之第八天
[打印本页]
作者:
admin
时间:
2008-3-26 16:40
标题:
十天学会php之第八天
2 G! l" E: l, F* ^0 S7 z
学习目的:做一个分页显示
& W- Z3 p7 {% _# E
关键就是用到了
SQL
语句中的
limit
来限定显示的记录从几到几。我们需要一个记录当前页的变量
$page
,还需要总共的记录数
$num
6 I2 i% u5 I. d2 Q: ?% d" }! H
( d/ y0 r8 k5 ^/ _: {8 ~! s2 h' l0 B& Z
对于
$page
如果没有我们就让它
=0
,如果有
<0
就让它也
=0
,如果超过了总的页数就让他
=
总的页数。
3 H" ~& i4 ~& Y. T( F" l. n
w9 P/ b. e5 W3 L
$execc="select count(*) from tablename ";
" Z4 U" ?% z# ~; u w3 x
$resultc=mysql_query($execc);
3 E3 x. w9 g5 [- T1 N
$rsc=mysql_fetch_array($resultc);
( h! i, x: F, C, B
$num=$rsc[0];
+ A0 J, E: z3 a) j' Q6 C1 Y3 h
4 w, {7 ^; ?% m- {% c
这样可以得到记录总数
6 S2 Z7 A$ [1 s. t
ceil($num/10))
如果一页
10
记录的话,这个就是总的页数
6 ~9 h. N1 B" }3 T& G. v/ T1 O1 |( w
所以可以这么写
( X) s( U t m D3 Z6 t! q6 A% D J4 G
if(empty($_GET['page']))
) ?. F4 k. Z4 |. D
{
( Y: Y; y! R" }/ ^' A/ B
$page=0;
4 n% |6 H. B; N; {2 g; }
}
% V# U, ~2 p1 E K% m
else
% m7 Q W* A9 {/ s& U$ s# j
{
0 L) C ]- E* t
$page=$_GET['page'];
: ~8 @) Q- P+ e- K- \; G; Y
if($page<0)$page=0;
$ c6 v9 b P/ _3 j7 y7 q
if($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为
page
是从
0
开始的,所以要
-1
; G& n, A# P* n j. b0 z
}
2 v, k- Y$ H' ]
# l8 G! v; R5 p) a- D8 o% u
这样
$exec
可以这么写
$exec="select * from tablename limit ".($page*10).",10";
6 W3 m6 ?; R3 N6 H
//
一页是
10
记录的
. \' V) @( [4 m( n1 o; x
最后我们需要做的就是几个连接:
9 c- d1 Z. o- D& l z$ M
<a href="xxx.php?page=0">FirstPage</a>
5 ~- M' |/ l9 b3 {! B1 z( S4 k' ?( m
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
0 M# ^. j1 ]5 e2 ?3 d7 H! L* w m
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
& i v, w: y, @* b5 d3 O n9 i
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
0 k: u7 _7 h+ d' r
e. y' R& `) F* D
这是一个大致的思路,大家可以想想怎么来优化?十天学会
php
之第八天就说到这里,第九天说一下一些注意的问题。
欢迎光临 捌玖网络工作室 (http://89w.org/)
Powered by Discuz! 7.2