>  기사  >  백엔드 개발  >  PHP分页查询解决方案

PHP分页查询解决方案

WBOY
WBOY원래의
2016-06-13 13:35:331330검색

PHP分页查询
假设表的名称为A,记录条数据为未知.  

各个问题最好用一条SELECT 实现  

1.取出表中前10条记录.(按物理逆序又应如写)  

2.取出表中的后10条记录.(按物理逆序又应如写)  

3.取出表中第10条到第20条记录.(按物理逆序又应如写)  

4.取出表中的所用记录,并加上两列分别是行号及物理行号.  

---------------------------  

  

1、select * from a limit 0,9  

2、select top(10) from a order by id desc  

3、select * from a limit 9,19  

---------------------------  

  

CREATE TABLE sort ('Col1' INT (3) UNSIGNED NOT NULL, 'Col2' CHAR (1) NOT NULL, PRIMARY KEY (Col1),INDEX Col2 (Col2));  

INSERT INTO sort (Col1, Col2) VALUES (1, 'A');  

INSERT INTO sort (Col1, Col2) VALUES (2, 'C');  

INSERT INTO sort (Col1, Col2) VALUES (3, 'B');  

INSERT INTO sort (Col1, Col2) VALUES (4, 'D');  

INSERT INTO sort (Col1, Col2) VALUES (5, 'F');  

INSERT INTO sort (Col1, Col2) VALUES (6, 'E');  

INSERT INTO sort (Col1, Col2) VALUES (7, 'H');  

INSERT INTO sort (Col1, Col2) VALUES (8, 'G');  

INSERT INTO sort (Col1, Col2) VALUES (9, 'K');  

INSERT INTO sort (Col1, Col2) VALUES (10, 'J');  

INSERT INTO sort (Col1, Col2) VALUES (11, 'L')  

INSERT INTO sort (Col1, Col2) VALUES (12, 'I');  

INSERT INTO sort (Col1, Col2) VALUES (13, 'N');  

INSERT INTO sort (Col1, Col2) VALUES (14, 'M');  

  

SELECT * FROM Table1 Limit 0,10;  

#按物理顺序取前10个  

  

SELECT * FROM Table1 Limit 10,10;  

#按物理顺序从第10开始取10个  

  

  

取后几个,要先查询了总记录数  

SELECT Count(*) As Count FROM Table1;  

然后在自己程序里处理成如上所示的SQL  

  

至于按物理顺序逆序取,  

呵呵,  

:《  

  

---------------------------  

  

$sql = "select cardid,company,name from namecard where";  

......  

  

$sql .= " limit $offset,10";  

$result2 = mysql_query($sql);  

while ($row = mysql_fetch_array($result2))  

  

  {  

  show_card($row);  

  }  

  $pages = ceil($num/10);  

  echo "";  

  echo "(共{$pages}页)\n\n\n";  

  if($offset>=10) //$offset大于9,在第二页面以上就会显示前一页  

  {  

  $preoffset = $offset-10;  

  echo "前一页 \n";  

  }  

  

  for ($i=1; $i
  {  

  $newoffset=10*($i-1);  

  echo "[$i] \n";  

  

  }  

  if ($pages!=0 && ($offset/10+1)
  {  

  echo "下一页 \n";  

  }  

  echo "";  


------解决方案--------------------

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.