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

十天学会php之第八天


- I* ]! _0 Z: w3 ^学习目的:做一个分页显示% h4 w6 Z* _0 G  b
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num
& m) E$ u1 z  a! y: |! Z3 a+ }8 Y7 I* n1 `. B& v
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
; k/ P3 q9 F5 g8 d9 F6 k

/ ?7 G! m/ ]" e3 F$execc="select count(*) from tablename ";$ \: f7 \4 R+ M& W& r: q
$resultc=mysql_query($execc);, I$ y/ y1 e0 L, G8 {! k+ |
$rsc=mysql_fetch_array($resultc);
4 k, M/ t1 p) F& _$num=$rsc[0];1 ~0 V# L  }: R( M! U

6 J4 x3 _5 \+ B- A
这样可以得到记录总数3 D5 d* k. Z/ r' o1 o) U
ceil($num/10))如果一页10记录的话,这个就是总的页数. n1 b' `, U. u  a6 v! r2 q# f
所以可以这么写
& R# K8 B: D) }- a6 k! ]: dif(empty($_GET['page']))
; F7 l) i% f6 Q9 p7 n& |{
6 O+ V2 U. R1 g; k" n4 B; C& s$page=0;+ C( F1 ]9 W0 v6 Z
}
9 ?0 b5 b. K' T8 x: ^) \2 ^  ielse1 Z) o4 R7 N3 P# k8 Y$ i5 i: Q( o
{
. s- b5 C- s& A# q$page=$_GET['page'];* r/ Y# W) w2 P+ e% Q1 v: x
if($page<0)$page=0;* j+ [/ e$ E' [7 r, G3 F8 l$ G4 N
if($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-1
$ i! I6 ^% T: F" X8 v}
6 n' I+ C3 k$ N% @! p0 F2 F8 ~8 Q6 M/ D* S
这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";* a! U2 A0 q7 g5 k- R! K7 P. V; E
//一页是10记录的

2 P) {  |- r: s5 k  X/ ~% I9 {最后我们需要做的就是几个连接:
; L6 h! {: P& `  v9 `, P<a href="xxx.php?page=0">FirstPage</a> ; w. V- L* n! Y/ {$ j8 S$ g
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
7 p/ N2 v7 r4 a1 m+ i<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> 2 O5 \5 I) T% k/ e9 r
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
" d, ?' \* |4 v" [- c1 Q1 G! ?- j4 R. P/ Q# L3 V
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

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