2012-07-20 64 views
-3

一個例子表mysql數據庫,如何限制從while循環

id alphabet 
1 A 
2 B 
3 C 
4 D 

我的項目需要我從數據庫中獲取26數組提取。 有沒有辦法來限制我的輸出爲1前沒有限制它,因爲我想顯示如:A, 然後通過按下一個按鈕,如果符合要求,便會顯示器B?

+0

什麼是「限制我的輸出爲1前沒有限制它」是什麼意思?你想限制它還是你? – Barmar 2012-07-20 03:47:50

+0

我的意思是,我想我需要讀取數據庫中的所有數據,但我想從數據庫中顯示只有A,然後通過單擊它,然後從數據庫中讀取B中。 – Trifers 2012-07-20 03:57:57

+0

你可以使用AJAX來運行另一個查詢時,他們已經準備好按B鍵 – 2012-07-20 04:01:42

回答

0

您可以使用LIMIT在SQL來限制你得到的結果數。

0

我正在拍攝一個在黑暗中這裏你的問題。使用LIMIT和OFFSET可以幫助您檢索單個行。

SELECT id, alphabet FROM table LIMIT 1 OFFSET 0 

LIMIT 1將永遠給你一個記錄。 OFFSET表示要跳過多少行。

LIMIT and OFFSET

2

PHP運行在服務器上,它不能直接響應用戶的點擊。每次用戶點擊鏈接到頁面時,腳本都會重新開始。

第一次運行腳本,你可以運行查詢並保存在session變量(在下面的例子中稱爲array_data)所有結果。然後,您可以使用一個參數來指示腳本的按鈕鏈接,該參數告訴它要顯示哪個行號。例如:

if(!isset($_SESSION['array_data'])) { 
    $_SESSION['array_data'] = array(); 
    <execute query> 
    while ($row = <fetch row>) $_SESSION['array_data'][] = $row; 
} 
$cur_row = isset($_REQUEST['rowid']) ? $_REQUEST['rowid'] : 0; 
printf("Data is: %s<BR/>", htmlentities($_SESSION['array_data'][$cur_row])); 
printf("<A HREF='scriptname.php?rowid=%d'>Next row</A>", $cur_row+1); 
+0

很好的外推和解決方案的問題很少%) – spacediver 2012-07-20 05:18:34

0

或者您可以簡單地使用FOR(){}循環。 例如:

for($i; $i < 1; $i++){ 

$DoSql = mysql_query("SELECT * FROM <database> ORDER BY ABS(<datarow>) asc"); 
$FetchSql = mysql_fetch_array($DoSql); 

---Your code goes Here--- 

}