2011-11-23 41 views
0

所以我執行查詢:SQL_CALC_FOUND_ROWS不工作

SELECT SQL_CALC_FOUND_ROWS * FROM table l LIMIT 10, 20; 

返回從表20行,總共有553個表中的行

然後我立即執行SELECT FOUND_ROWS();

但這相反,只返回數字1,儘管我的表中有553行(應該返回553,我是否正確?)

w帽子我做錯了嗎?

+0

你的語法正確,你獲得FOUND_ROWS的()的結果之前執行另一套查詢的任何機會呢? – ajreal

回答

1

我懷疑你有一個語法錯誤,因爲SQL中的名字不應該包含空格。嘗試在[table 1]附近添加方括號,如果這是您的表的名稱。

0

刪除你的限制,我認爲它沒有顯示20行;它只顯示10行。

$sql = "SELECT SQL_CAL_FOUND_ROWS * FROM users "; //don;t write table then table name 
$result = mysql_query($sql); 

//這些根據您的要求使用:

$sql = "SELECT SQL_CAL_FOUND_ROWS * FROM users "; 
$result = mysql_query($sql); 
$sql = "SELECT FOUND_ROWS() AS `found_rows`"; 
$rows = mysql_query($sql); 
$rows = mysql_fetch_assoc($rows); 
$total_rows = $rows['found_rows'];