2009-12-23 86 views
1

我想這樣做:如何獲取上次mysql獲取數據的值? PHP-MySQL

檢查點的前10個值。

這裏是我的情況:

  • 如果有發現小於10個的記錄(行),如給予獎金

  • 如果點是前十名(數百記錄/行中) ,給予獎金。

所以,我做的是(錯誤的方法):

SELECT points FROM `scores` WHERE id = '1' ORDER BY score DESC LIMIT 9 , 1 

如果我有更多然後9(至少10個)的數據/記錄,這將只工作。

有沒有其他辦法?

我想用這個(不太雖好)的:

SELECT points FROM `scores` WHERE id = '1' ORDER BY score DESC LIMIT 0 , 10 

然後得到mysql_fetch_assoc數據的最後一個值。因此,如何獲取mysql_fetch_assoc數據的最後一個值?

+0

得到樣品輸入輸出sceanrio – CheeseConQueso 2009-12-23 18:12:56

回答

1

前面的查詢是接近你想要什麼:

SELECT points FROM (
    SELECT points, score 
    FROM scores 
    WHERE id = '1' 
    ORDER BY score DESC 
    LIMIT 10 
) AS top_ten 
ORDER BY score ASC 
LIMIT 1 

如果你想堅持mysql_fetch_assoc讓你可以利用mysql_data_seek的最後一個值。

事情是這樣的:

<?php 
// ... $result is the result set from your query 

$result_count = mysql_num_rows($result); 
if ($result_count > 0) 
{ 
    mysql_data_seek($result, $result_count - 1); 
} 

$row = mysql_fetch_assoc($result); 
?> 
0

嘗試使用此:

SELECT points FROM (SELECT points FROM scores WHERE id = '1' ORDER BY score DESC LIMIT 10) ORDER BY score LIMIT 1

+0

很好,它不工作:( – mysqllearner 2009-12-23 15:21:54