2011-09-01 57 views
-2

我有一個表單,您可以在其中輸入內容,然後顯示最後一行的標識和標題,但是由於它正在那裏創建,然後它只顯示前一行在提交的時候, 也就是說,如果最後一行的id是23它會顯示23行,當我真正想要它顯示24行,來解決這個問題我在下面的查詢添加+1 ID:php/sql需要查詢幫助才能獲得最後一個標題

即:

$last_id = $lr_result['id'] + 1; 

現在這工作正常的ID,但現在我試圖讓同一行的標題,但無論我嘗試,我總是得到最後的冠軍(在提交時), 即第23行的標題,而不是第24行的標題(或者下面的代碼段中沒有任何內容)。

// fetch id 
$lastrow = "SELECT * FROM foo ORDER BY id DESC LIMIT 1"; 
$lr_result = mysql_fetch_assoc(mysql_query($lastrow)); 
//fetch id and add 1 
$last_id = $lr_result['id'] + 1; 

// fetch title where id = last_id 
$lasttitlerow = "SELECT * FROM foo WHERE id='{$last_id}'"; 
$ltr_result = mysql_fetch_assoc(mysql_query($lasttitlerow)); 
$last_title = $ltr_result['title']; 

echo $last_id . $last_title; 

一如既往,所有的幫助表示感謝,並提前致謝。

+1

我可能會誤解你,但是你需要插入用戶在數據庫之前提交的新行。你的代碼不起作用,因爲它看起來像你試圖檢索一個不存在的行的信息。 –

+0

聖潔的標點符號,蝙蝠俠。我甚至不明白你的第一句話。 – Mike

+0

我同意布賴恩,如果你選擇最後一行的id,爲什麼**最後一行'id + 1 **是一個有效的行? – Kevin

回答

0
SELECT * FROM foo WHERE id = (SELECT max(id) FROM foo) 

也許?內部查詢將返回'23',外部查詢將獲取整個記錄。您將無法檢索id = 24,因爲該記錄尚不存在 - 您尚未插入它。

+0

當你說id 24不存在但id 24被創建時/在表單提交時插入,但是因爲我在提交的同時運行上述查詢(插入第24行到db)添加+1返回id 24 – Dizzi

+0

然後執行插入操作,然後使用'$ new_id = mysql_insert_id()',它返回當前連接插入的最後一行的ID。 –