2011-10-12 94 views
2

我想獲取我輸入的最後一個值。mysql查詢中奇怪的錯誤

我正在嘗試獲取我的文章的編號。所以我用這個查詢:

$totalPages= mysql_query("SELECT page FROM `easy_db`.`article` ORDER BY article_id DESC LIMIT 1") or die(mysql_error()); 

,我得到的是6

爲什麼6的價值?我截斷table..and再次嘗試,我得到6再次..這應該是1

還有一個問題,我想執行的PHP類..

我試圖執行一個Int,但它似乎沒有工作:

$page=(int) $totalPages/10; 
+1

如果您發佈了一些數據,這可能會有所幫助。對於最後一篇article_id,頁面是什麼? –

+1

您可能會考慮在另一個問題上詢問另一個問題,因爲它與您的第一個無關。 – brenjt

+0

好的。有人回答我有關第一個問題 –

回答

4

mysql_query返回資源句柄,而不是查詢本身的結果。請參閱PHP手冊以獲取how to query a database的一些基本示例。例如:

$result= mysql_query("SELECT page FROM `easy_db`.`article` ORDER BY article_id DESC LIMIT 1") or die(mysql_error()); 

if ($row = mysql_fetch_assoc($result)) { 
    $totalPages=$row['page']; 
} 

關於你提到的第二個問題,要注意operator precedence rules - 中(INT)運算符具有優先級高於劃分,所以在分割前進行。因此,你可以得到一個浮點結果。或者試試這些

$page = (int)($totalPages/10); #rounds down 

$page=round($totalPages/10); #rounds up or down as appropriate 

一個又籤floor()ceil()以替代圓形,因爲他們寫分頁計算時,往往是有用的。

+0

謝謝。你能告訴我如何在php中強制類型嗎? –

1

可以使用mysql_insert_id()函數在PHP中檢索最後插入行的ID。

mysql_insert_id

+0

問題是我需要檢索不是id的頁面編號。並且只在執行select語句之後才執行插入操作。所以這不是一個解決方案 –

+0

那麼使用ID,你可以很容易地檢索頁碼。 – brenjt

1

您應該使用mysql_insert_id();您的插入語句後立即。