返回列表 发帖

十天学会php之第八天

3 y! a5 l9 r3 _! u
学习目的:做一个分页显示
0 ^- C+ {+ q) [) ]4 [关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num
) h3 r- `7 M  p2 n
( p4 ~9 P' h6 l" |对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。

1 G' Q  |7 |3 k; i9 @
( u" M8 ?0 ~" t4 C$execc="select count(*) from tablename ";
! x3 s+ n) a2 A8 ?4 `' u$resultc=mysql_query($execc);
6 G9 K+ y4 B6 M( k4 b$rsc=mysql_fetch_array($resultc);& J0 `/ J. Q. n+ Z1 g8 W
$num=$rsc[0];
' H3 Z0 r2 h  G4 z( Q) B! |
$ R! _/ V( Z0 U9 T3 ~5 Z* q
这样可以得到记录总数
9 Z  |( W4 [. O$ p# g, f3 ]ceil($num/10))如果一页10记录的话,这个就是总的页数
0 U, e/ [. t+ P# ~所以可以这么写# j9 z/ N) n' I5 h# R- B3 b: ?, I
if(empty($_GET['page']))8 Q2 P  X; t2 k6 i
{
* j) f, |5 y* _6 Z$page=0;
9 |' C% h. k$ ]6 P}
! o0 W* w- T5 k4 K' V7 b. Lelse/ W, W. v& l% P( q3 z
{) a" S& j& [; ?. S$ V6 s
$page=$_GET['page'];
, v" D2 M/ b. a8 ?if($page<0)$page=0;
6 B' f8 w, {# y' Gif($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-10 W* z  Q6 D: i/ V/ C/ ?6 W3 n
}
- D7 \$ `% C! w
+ g5 A, i( _2 N这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";
( s) B# \; z0 h: d! V8 h: E4 {//一页是10记录的
+ t6 G3 w3 h1 Z+ F; `! n4 W
最后我们需要做的就是几个连接:9 p$ o* l: k9 Z' Y6 _
<a href="xxx.php?page=0">FirstPage</a>
' t2 o* C* q7 c9 K1 `6 ]<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
: o9 v3 K/ A9 [. {, `<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> $ [$ f/ g* J- w  a& ~
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>) p! F. G' p$ D7 Y  m

. @# @% P. c! ]# G
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

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