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

十天学会php之第八天


' Q& u' K" ^8 L9 o, L学习目的:做一个分页显示# k2 Z9 Q8 H  [  c% d) W2 k
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num
) L- [7 U* f; m6 K  ^' X$ _1 b3 o
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
# u% k3 _- Y; q  r- d
; B  s, L# h) v# H* ?9 g
$execc="select count(*) from tablename ";
7 S$ F! q6 Y- I$ d: B$ S$resultc=mysql_query($execc);
% o$ A$ Y& S0 w$rsc=mysql_fetch_array($resultc);/ [9 R5 J; g. e- N. F
$num=$rsc[0];# m7 s6 ?8 \( |2 L) I

8 M" R6 f/ {+ o7 S/ E
这样可以得到记录总数
7 z$ y( e! H( R7 Cceil($num/10))如果一页10记录的话,这个就是总的页数
! t2 {7 ^7 l- l6 q9 P所以可以这么写
. o# P: d9 T( H: B6 y9 Qif(empty($_GET['page']))- ?. W! d( H( a1 y3 v: r
{
. u3 H- g% X' D3 B8 `$page=0;
- t/ @) a4 n! P4 q! G" w4 D7 E8 R}" q$ [2 f3 {4 l. ~
else, o4 |9 a" {1 L" W7 B& F2 y
{, H! X7 N! C: v' d- y( }% F4 f4 m
$page=$_GET['page'];
3 w/ E6 ?# c/ Zif($page<0)$page=0;
1 Y# [- [. @& _8 q8 Wif($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-1
3 U) J4 ?( w) ~) x}
: S" h* h' E9 e* d" E; {8 U, e$ K3 c
这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";6 `- E$ ?7 j& |" ?# r
//一页是10记录的
1 l1 L% j/ i( X( b& c. k6 c  r
最后我们需要做的就是几个连接:, ]4 q& r1 l" S5 C0 [( D+ f
<a href="xxx.php?page=0">FirstPage</a>
3 Q7 J1 x& W, W0 U" C<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
  T7 E3 M$ X. U% l" U2 f% O1 s4 l<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> 5 S% {1 O" S" i/ y3 P
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
3 U; u9 E7 h: g* {8 ^$ J  E$ ?" g( H* E9 b" }! J; _- ^! ]. J
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

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