返回列表 发帖

十天学会php之第八天

* l" ]7 @6 ^' H
学习目的:做一个分页显示& o% g) M+ f$ J3 @5 |
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num
6 X( ?+ J6 V9 ~; C7 r' Y) m0 ]; V
# E1 t$ B3 l" W7 g' |$ Z, A对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。

. W1 C0 b# K, a( y8 H) B1 j# J
" n4 {* J1 p/ g! i& b$execc="select count(*) from tablename ";7 ?1 @, {" m8 z: d4 v# C) A% C' y
$resultc=mysql_query($execc);
8 `  s. l8 \  Y. d) l* G) f- K1 i$rsc=mysql_fetch_array($resultc);. F- D; {0 p0 j4 ]/ C% `
$num=$rsc[0];0 M) S1 T* D2 ^0 _! A/ m

% C2 C3 m. O; m" Y  u" w
这样可以得到记录总数4 ~2 ~2 v- t" E5 Y- o
ceil($num/10))如果一页10记录的话,这个就是总的页数3 I! s7 Q/ Y& C& [) C
所以可以这么写! c1 @# L7 V4 h! o8 f' H7 o: H2 f
if(empty($_GET['page']))$ N- A1 a9 g+ O' @% X; H8 C! a
{! q# J( b$ l& r5 y8 [
$page=0;' n. l" K/ o: r/ ?1 |- C: B" N: U, K
}- i8 z: u  B2 M/ [6 V
else
0 [* N8 g+ Z3 I5 V0 m8 r) X5 ?2 T{7 g+ u" z' a! k( M& h
$page=$_GET['page'];
3 F* Z; J, `; J* p3 w" Xif($page<0)$page=0;, E/ W, v( F* O! q$ ^6 |
if($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-1
4 V& a8 `( I0 G2 v5 @9 m+ M5 X2 d} # t0 Q1 I  N; K' a

, G5 m1 N' J" D. c1 ?& a这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";' a. M. N5 J& k
//一页是10记录的
2 q! e4 n6 ]/ s/ d; N6 k% \4 R
最后我们需要做的就是几个连接:
: F; Y8 J- E7 T/ I4 s$ d<a href="xxx.php?page=0">FirstPage</a> ) I& d8 c8 ^, S& n* [- V
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> 0 j, J2 N5 u& b7 W: ]; _
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
- H* V' R/ d' E* ?<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>' @2 p! t9 r3 V% {9 i6 n, A
9 ?; ?" x2 R! q$ m
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

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