获得本站免费赞助空间请点这里
返回列表 发帖

十天学会php之第八天


9 m/ Z8 N# ~/ _6 v. K, H4 [学习目的:做一个分页显示/ \4 [1 W! Y" I* ^( k) Q% v
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num/ B  y( g) c/ ^) d. n5 j$ j1 {. a

% m" a" E: j7 J0 ~* d+ `8 O3 D对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。

1 A8 W( }7 a: X& z. W- _. T* T  V3 r: a0 v- \: z% p7 a
$execc="select count(*) from tablename ";
8 A) g& y1 @0 V2 K! F  n$resultc=mysql_query($execc);
# {: q7 ^  b$ Q1 h- V; ^2 f! s, U$rsc=mysql_fetch_array($resultc);6 O# t3 r+ K& ?, \8 i; z8 I/ v3 ?
$num=$rsc[0];3 Y, f6 P. b# D$ B+ a3 h

9 k7 Q/ G7 J8 s( W: ]7 q/ s
这样可以得到记录总数
( ^/ Z5 a" O- L2 y7 G2 ~! ~ceil($num/10))如果一页10记录的话,这个就是总的页数
1 O* [- x* j" }5 ]$ l所以可以这么写
, a' ~$ b5 R& n( w; p5 a0 iif(empty($_GET['page']))7 Y7 W, G6 h: g$ x+ d4 x6 q! y
{
' U  @: U- Y  ]5 n$page=0;
' p0 `3 O- D# k, [& B3 C4 X}
/ f3 M% A# v& V1 }6 e# }* Velse
8 t2 l# b3 a1 R; t1 c6 o: l{' w% Z( v7 |  a, y# \! _: k
$page=$_GET['page'];
, [) r  f1 C" I! L6 ?- |if($page<0)$page=0;
- e9 o6 G* Z  ^( tif($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-1
6 `9 D/ a/ W7 t} 9 T4 P- @- }# ]3 U% R9 X
! e+ _7 ?7 U9 ?7 b0 t& B
这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";6 w; I. M0 T1 I7 b- p) D
//一页是10记录的

" Z+ x9 L: |8 I( b" L8 @最后我们需要做的就是几个连接:1 [$ D1 w2 u% P, E9 c$ u  z; Y
<a href="xxx.php?page=0">FirstPage</a>
9 W5 |, e; w# K1 R<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> + P( f+ h' k. P" g
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> ; t- |5 Y8 K# q" W5 F4 G2 g7 ~
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
" V4 \+ B9 |$ W# A  O/ ~5 U
* h3 w0 }7 s1 y6 a4 [4 P' k) a' J
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

返回列表
【捌玖网络】已经运行: