2011-09-01 34 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。 –