AL8 Forum
   登錄註冊幫助


標題: 資料庫查詢限制
 zoooooo1
 0044097
Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

頭銜: Forum Legend

帖子: 1806

精華: 0

積分: 6265 點

現金: 0 元

存款: 16656 元

閱讀權限: 70

註冊: 2006-4-26

狀態: 離線
 
發表於 2008-9-6 11:58  資料  個人空間  短消息  加為好友 
資料庫查詢限制

原本係咁

                $query   = doquery("SELECT * FROM {{table}} ORDER BY `". $TypeSort ."` ASC", 'users');

我想加個每頁顯示20個咁我加左
$num_of_each_page = '25';

跟住咁加
                $query   = doquery("SELECT * FROM {{table}} ORDER BY `". $TypeSort ."` ASC", $num_of_each_page, 'users');

但係有error=.=
其實錯咩??




 AL8 Forum © All rights reserved.
頂部
 青山
 0051494
Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

頭銜: Forum Legend

暱稱: SkyBread

自述: PHP BB

帖子: 4243

精華: 0

積分: 8554 點

現金: 34 元

存款: 8806 元

閱讀權限: 70

註冊: 2006-9-2

來自: 小花園

狀態: 離線
 
發表於 2008-9-6 12:06  資料  個人空間  主頁 短消息  加為好友 
唔多明你個SQL...
但係你冇加到LIMIT...
一定有Error...




 AL8 Forum © All rights reserved.
頂部
 zoooooo1
 0044097
Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

頭銜: Forum Legend

帖子: 1806

精華: 0

積分: 6265 點

現金: 0 元

存款: 16656 元

閱讀權限: 70

註冊: 2006-4-26

狀態: 離線
 
發表於 2008-9-6 12:23  資料  個人空間  短消息  加為好友 
回覆 #2 青山 的帖子

加係邊個位岩d?
咁?

                $query   = doquery("SELECT * FROM {{table}} ORDER BY `". $TypeSort ."` LIMIT 0, 25  ASC", $num_of_each_page, 'users');




 AL8 Forum © All rights reserved.
頂部
 zoooooo1
 0044097
Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

頭銜: Forum Legend

帖子: 1806

精華: 0

積分: 6265 點

現金: 0 元

存款: 16656 元

閱讀權限: 70

註冊: 2006-4-26

狀態: 離線
 
發表於 2008-9-6 12:25  資料  個人空間  短消息  加為好友 
$num_of_each_page = '25';

其實我想每頁顯示25個結果~





 AL8 Forum © All rights reserved.
頂部
 hamu278
 0024014
Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6
點擊查看 hamu278 的詳細資料

頭銜: Forum Legend

暱稱: 已激活的會員

自述: UID: 0024014

帖子: 5568

精華: 0

積分: 16472 點

現金: 2224 元

存款: 8535 元

閱讀權限: 70

註冊: 2005-6-18

狀態: 離線
 
發表於 2008-9-6 12:35  資料  個人空間  主頁 短消息  加為好友  添加 hamu278 為MSN好友 通過MSN和 hamu278 交談
剩係話有error,又唔講乜error,鬼知你搞乜




 AL8 Forum © All rights reserved.
頂部
 zoooooo1
 0044097
Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

頭銜: Forum Legend

帖子: 1806

精華: 0

積分: 6265 點

現金: 0 元

存款: 16656 元

閱讀權限: 70

註冊: 2006-4-26

狀態: 離線
 
發表於 2008-9-6 12:38  資料  個人空間  短消息  加為好友 
回覆 #5 hamu278 的帖子

出唔到野




result




 AL8 Forum © All rights reserved.
頂部
 hamu278
 0024014
Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6
點擊查看 hamu278 的詳細資料

頭銜: Forum Legend

暱稱: 已激活的會員

自述: UID: 0024014

帖子: 5568

精華: 0

積分: 16472 點

現金: 2224 元

存款: 8535 元

閱讀權限: 70

註冊: 2005-6-18

狀態: 離線
 
發表於 2008-9-6 12:51  資料  個人空間  主頁 短消息  加為好友  添加 hamu278 為MSN好友 通過MSN和 hamu278 交談
$query   = doquery("SELECT * FROM `{table}` ORDER BY `{$TypeSort}` ASC limit 0,25");

limit 0,25 果到自己搞,0 係 從第幾項資料開始讀取,25 係 讀取幾多項資料




 AL8 Forum © All rights reserved.
頂部
 zoooooo1
 0044097
Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

頭銜: Forum Legend

帖子: 1806

精華: 0

積分: 6265 點

現金: 0 元

存款: 16656 元

閱讀權限: 70

註冊: 2006-4-26

狀態: 離線
 
發表於 2008-9-6 13:14  資料  個人空間  短消息  加為好友 
QUOTE:
原帖由 hamu278 於 2008-9-6 12:51 發表
$query   = doquery("SELECT * FROM `{table}` ORDER BY `{$TypeSort}` ASC limit 0,25";
limit 0,25 果到自己搞,0 係 從第幾項資料開始讀取,25 係 讀取幾多項資料


ok了
但係得1-25個result ><
我唔識點整有頁數=.=
可否教教

[ 本帖最後由 zoooooo1 於 2008-9-6 13:32 編輯 ]




 AL8 Forum © All rights reserved.
頂部
 hamu278
 0024014
Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6
點擊查看 hamu278 的詳細資料

頭銜: Forum Legend

暱稱: 已激活的會員

自述: UID: 0024014

帖子: 5568

精華: 0

積分: 16472 點

現金: 2224 元

存款: 8535 元

閱讀權限: 70

註冊: 2005-6-18

狀態: 離線
 
發表於 2008-9-6 13:52  資料  個人空間  主頁 短消息  加為好友  添加 hamu278 為MSN好友 通過MSN和 hamu278 交談
回覆 #8 zoooooo1 的帖子

由於你想任何一頁都出25個結果,所以 limit 0,25 既 25 係唔洗改
而0:
第一頁讀第0至24項資料,第二頁讀第25至49項
即係第一頁就 limit 0,25 、第二頁就 limit 25,25、第三頁就 limit 50,25
即: (頁數 -1) * 25
* 第一頁就係(1-1)*25= 0*25 = 0,第二頁就(2-1)*25 = 1 * 25 = 25,如此類推

$page_start = ({現時第幾頁的變數}-1)*25;
$query   = doquery("SELECT * FROM `{table}` ORDER BY `{$TypeSort}` ASC limit {$page_start},25");




 AL8 Forum © All rights reserved.
頂部
 bananasims
 0025881
Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8
點擊查看 bananasims 的詳細資料

頭銜: Super Moderator

帖子: 12084

精華: 0

積分: 27025 點

現金: 345 元

存款: 84490 元

閱讀權限: 110

註冊: 2005-7-10

狀態: 離線
 
發表於 2008-9-6 18:42  資料  個人空間  主頁 短消息  加為好友 
回覆 #9 hamu278 的帖子

注意一樣野,雖然絕大部份係用 MySQL
如果係會開發比其他 SQL 用,好似 MSSQL 咁樣的話唔可以用 LIMIT,LIMIT 係 MySQL 專有的




 AL8 Forum © All rights reserved.
頂部
 hamu278
 0024014
Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6
點擊查看 hamu278 的詳細資料

頭銜: Forum Legend

暱稱: 已激活的會員

自述: UID: 0024014

帖子: 5568

精華: 0

積分: 16472 點

現金: 2224 元

存款: 8535 元

閱讀權限: 70

註冊: 2005-6-18

狀態: 離線
 
發表於 2008-9-6 19:09  資料  個人空間  主頁 短消息  加為好友  添加 hamu278 為MSN好友 通過MSN和 hamu278 交談
回覆 #10 bananasims 的帖子

要 loop 果時加 if 黎控制?




 AL8 Forum © All rights reserved.
頂部
 zoooooo1
 0044097
Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

頭銜: Forum Legend

帖子: 1806

精華: 0

積分: 6265 點

現金: 0 元

存款: 16656 元

閱讀權限: 70

註冊: 2006-4-26

狀態: 離線
 
發表於 2008-9-6 20:01  資料  個人空間  短消息  加為好友 
QUOTE:
原帖由 hamu278 於 2008-9-6 13:52 發表
由於你想任何一頁都出25個結果,所以 limit 0,25 既 25 係唔洗改
而0:
第一頁讀第0至24項資料,第二頁讀第25至49項
即係第一頁就 limit 0,25 、第二頁就 limit 25,25、第三頁就 limit 50,25
即: (頁數 -1) ...



實在太好啦 :em32:




 AL8 Forum © All rights reserved.
頂部
 bananasims
 0025881
Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8
點擊查看 bananasims 的詳細資料

頭銜: Super Moderator

帖子: 12084

精華: 0

積分: 27025 點

現金: 345 元

存款: 84490 元

閱讀權限: 110

註冊: 2005-7-10

狀態: 離線
 
發表於 2008-9-6 20:31  資料  個人空間  主頁 短消息  加為好友 
回覆 #11 hamu278 的帖子

phpBB 既 Class 有解釋




 AL8 Forum © All rights reserved.
頂部
 zoooooo1
 0044097
Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

頭銜: Forum Legend

帖子: 1806

精華: 0

積分: 6265 點

現金: 0 元

存款: 16656 元

閱讀權限: 70

註冊: 2006-4-26

狀態: 離線
 
發表於 2008-9-7 03:16  資料  個人空間  短消息  加為好友 
當而家有100個留言


$query = doquery("SELECT * FROM {{table}} ORDER BY messageid ASC", "chat");


SHOW曬全部


如果只想出20個
$query = doquery("SELECT * FROM {{table}} ORDER BY messageid ASC limit 0,20", "chat");

但係佢只出了頭1-20句


$query = doquery("SELECT * FROM {{table}} ORDER BY messageid DESC limit 0,20", "chat");
而家佢
最新係最頂SHOW出黎

但我原本係最新係最底=.=




 AL8 Forum © All rights reserved.
頂部
 hamu278
 0024014
Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6
點擊查看 hamu278 的詳細資料

頭銜: Forum Legend

暱稱: 已激活的會員

自述: UID: 0024014

帖子: 5568

精華: 0

積分: 16472 點

現金: 2224 元

存款: 8535 元

閱讀權限: 70

註冊: 2005-6-18

狀態: 離線
 
發表於 2008-9-7 08:54  資料  個人空間  主頁 短消息  加為好友  添加 hamu278 為MSN好友 通過MSN和 hamu278 交談
回覆 #13 bananasims 的帖子

搵到一個 Build LIMIT query 既 Function
============================
回覆 #14 :
即係你想點?依家點?




 AL8 Forum © All rights reserved.
頂部
 zoooooo1
 0044097
Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

頭銜: Forum Legend

帖子: 1806

精華: 0

積分: 6265 點

現金: 0 元

存款: 16656 元

閱讀權限: 70

註冊: 2006-4-26

狀態: 離線
 
發表於 2008-9-7 11:23  資料  個人空間  短消息  加為好友 
我個chat

上面一個table 顯示msg肉容
下面一條bar 比人輸入字


$query = doquery("SELECT * FROM {{table}} ORDER BY messageid ASC limit 0,20", "chat");

d msg肉容係....

第1句
第2句
.....
第20句











$query = doquery("SELECT * FROM {{table}} ORDER BY messageid DESC limit 0,20", "chat");

佢就


第100句
第99句
......
第81句






我想就係張個排列方法倒轉
第81句
第82句
.....
第100句

[ 本帖最後由 zoooooo1 於 2008-9-7 11:24 編輯 ]




 AL8 Forum © All rights reserved.
頂部
 hamu278
 0024014
Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6
點擊查看 hamu278 的詳細資料

頭銜: Forum Legend

暱稱: 已激活的會員

自述: UID: 0024014

帖子: 5568

精華: 0

積分: 16472 點

現金: 2224 元

存款: 8535 元

閱讀權限: 70

註冊: 2005-6-18

狀態: 離線
 
發表於 2008-9-7 14:26  資料  個人空間  主頁 短消息  加為好友  添加 hamu278 為MSN好友 通過MSN和 hamu278 交談
回覆 #16 zoooooo1 的帖子

DESC limit 0,20 > ASC limit {自己計},20




 AL8 Forum © All rights reserved.
頂部
 zoooooo1
 0044097
Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

頭銜: Forum Legend

帖子: 1806

精華: 0

積分: 6265 點

現金: 0 元

存款: 16656 元

閱讀權限: 70

註冊: 2006-4-26

狀態: 離線
 
發表於 2008-9-7 17:57  資料  個人空間  短消息  加為好友 
回覆 #17 hamu278 的帖子

我唔明點用wo




 AL8 Forum © All rights reserved.
頂部
 zoooooo1
 0044097
Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

頭銜: Forum Legend

帖子: 1806

精華: 0

積分: 6265 點

現金: 0 元

存款: 16656 元

閱讀權限: 70

註冊: 2006-4-26

狀態: 離線