PHP分頁查詢解決方案
來源:互聯網
上載者:User
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 <= $pages; $i++)
{
$newoffset=10*($i-1);
echo "[$i] \n";
}
if ($pages!=0 && ($offset/10+1)<$pages)
{
echo "下一頁 \n";
}
echo "";
------解決方案--------------------