Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php/sql需要查询帮助才能获取最后一个标题_Php_Mysql - Fatal编程技术网

php/sql需要查询帮助才能获取最后一个标题

php/sql需要查询帮助才能获取最后一个标题,php,mysql,Php,Mysql,我有一个表单,您可以在其中输入一些内容,然后显示最后一行的id和标题,但当在其中创建时,它只显示提交时的前一行, 也就是说,如果最后一行id为23,当我实际希望它显示第24行时,它将显示第23行,为了避免这个问题,我在下面的查询中向id添加了+1: 即: 现在这对id来说很好,但是现在我正在尝试获取同一行的标题,但是无论我如何尝试,我总是在提交时获取最后一个标题, ie第23行标题,而不是第24行标题,或者在下面的代码段中根本没有 // fetch id $lastrow = "SELEC

我有一个表单,您可以在其中输入一些内容,然后显示最后一行的id和标题,但当在其中创建时,它只显示提交时的前一行, 也就是说,如果最后一行id为23,当我实际希望它显示第24行时,它将显示第23行,为了避免这个问题,我在下面的查询中向id添加了+1:

即:

现在这对id来说很好,但是现在我正在尝试获取同一行的标题,但是无论我如何尝试,我总是在提交时获取最后一个标题, ie第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;
如往常一样,所有的帮助都会被提前感谢和感谢

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

也许吧?内部查询将返回“23”,而外部查询将获取整个记录。您将无法检索id=24,因为该记录尚不存在-您尚未插入它。

我可能误解了您的意思,但您需要先插入用户提交的新行,然后才能将其放入数据库中。你的代码不起作用,因为它看起来像是你在试图检索关于一个还不存在的行的信息。神圣的标点符号,蝙蝠侠。我甚至不能理解你的第一句话。我同意布赖恩的观点,如果你选择最后一行的id,为什么最后一行的id+1是有效的行?@Brian Glaz:好的,怎么解释。。当用户提交表单时插入新行,但同时我也使用上面的查询,因此查询希望显示第23行,但通过添加+1,它显示正确的第24行。您只需将插入代码放在上面发布的代码之前。如果你这样做,你就不需要添加1,它应该可以工作。你说ID24不存在,但ID24是在表单提交时创建/插入的,这是正确的,但我在提交的同时运行上述查询将第24行插入db adding+1返回ID24,然后进行插入,然后使用$new\u id=mysql\u insert\u id,返回当前连接插入的最后一行的ID。
SELECT * FROM foo WHERE id = (SELECT max(id) FROM foo)