返回列表 发帖

十天学会php之第八天


2 ^6 K9 C) t; }学习目的:做一个分页显示& w& @6 h' N- g% z
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num
* r5 Z7 e5 |2 W) P
% `! }8 W# J" E0 |3 X对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。

  A% N- J: \" C! y% z6 H' H8 A4 w) g3 i# z
$execc="select count(*) from tablename ";1 P: k$ x# O1 z8 `- C& s
$resultc=mysql_query($execc);
+ I8 S: l9 i" ~* d( p# j$rsc=mysql_fetch_array($resultc);
' X% g0 P( \, B/ p. o  c& G$num=$rsc[0];
& Q' W! g, N2 J5 E! t8 J' \7 y) }
+ x! s3 ^, e! z' u6 p
这样可以得到记录总数7 k* Z; `: q/ x2 L
ceil($num/10))如果一页10记录的话,这个就是总的页数
$ g- _& J7 B" q0 y所以可以这么写: K+ e* ]: w5 Z7 u: T8 B
if(empty($_GET['page']))1 U+ S. ~. d* I/ W, ~) w
{4 \4 e' i7 a- Q; B& t6 f+ D% I
$page=0;/ n/ j! k. b+ E; `% c4 A8 U8 P/ N2 D
}
1 z- Y/ Z% \% \5 f$ lelse. D4 {) f/ N" v* \
{
, l# c5 i0 x: _* f( T0 v/ W5 {4 L$page=$_GET['page'];9 I5 d5 A3 t1 P8 B3 C
if($page<0)$page=0;, v" Y$ a# H, j8 P
if($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-1
/ M7 g- E' _0 J5 S, L}
+ N! O" h. q5 @- e
! m2 a8 L3 K+ r. n0 Y6 o这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";
+ I: c. U+ E: \: L6 |//一页是10记录的

: I9 Q& Q9 f" s* n% @最后我们需要做的就是几个连接:
: ^3 b8 T3 x, E. u' N2 L<a href="xxx.php?page=0">FirstPage</a> - K+ b" z: t# P( \
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
! `/ w$ y) v1 m  B<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
0 x2 A2 n+ H+ M: q/ ]" O4 o6 }<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
3 r: P: U& T  ~' q+ i* C3 `4 F9 X6 u5 A4 Q, e
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

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