怎么获取表单的最后一条数据id?

2012-03-20 12:01:46 +08:00
 jackhe
刚学php两天,求教一下

<?php
$con=mysql_connect("localhost","test","a");
mysql_select_db("voice",$con);

$result=mysql_query("SELECT* FROM list WHERE voice_id= ");
while($row=mysql_fetch_array($result)){
echo "<h1>";
echo $row['voice_title'];
echo "</h1>";
echo "<p><span>作者:";
echo $row['article_author'];
echo "</span><span>声音:";
echo $row['voice_author'];
echo "</span></p>";
echo "<p>";
echo $row['voice_file'];
echo "</p>";
echo $row['voice_date'];
}

?>

怎么获取表单的最后一条数据id?
5386 次点击
所在节点    程序员
22 条回复
qq286735628
2012-03-20 12:12:22 +08:00
你的表单的代码呢?
$_POST['id']?
kojp
2012-03-20 12:41:58 +08:00
limit
kojp
2012-03-20 12:42:46 +08:00
0,1

desc
iamdbc
2012-03-20 13:18:12 +08:00
是表单还是数据库?
jackhe
2012-03-20 13:21:10 +08:00
@iamdbc 表单
jackhe
2012-03-20 13:21:39 +08:00
$result=mysql_query("SELECT* FROM list WHERE voice_id= ");
justfindu
2012-03-20 13:23:26 +08:00
怎么感觉这个问题就像 : 小明有5个红苹果,4个绿苹果,请问橘子怎么卖一样.

表单的最后一条指?
表单或通过$_GET / $_POST /$_REQUEST 获得,对应其name属性
justfindu
2012-03-20 13:24:48 +08:00
你指的是数据库最后一条吧~ select * from list limit 0,1 order by voice_id desc
jackhe
2012-03-20 13:25:17 +08:00
搞定了

result=mysql_query("SELECT* FROM list order by voice_id desc limit 0,1");

感谢大家
jackhe
2012-03-20 13:25:34 +08:00
@justfindu

是的,谢谢
opennet
2012-03-20 13:26:03 +08:00
你说的是数据库表的最后一条记录ID吧?
iamdbc
2012-03-20 13:42:53 +08:00
@jackhe 这个是从数据库把voice_id排序以后获得的吧?
66450146
2012-03-20 14:16:43 +08:00
提醒一下楼主,MySQL并没有保证这种情况下id最大的数据一定是最新的
jackhe
2012-03-20 14:37:09 +08:00
@66450146
那如何处理呢?
66450146
2012-03-20 14:45:26 +08:00
@jackhe 加一个字段
benzhe
2012-03-20 15:49:59 +08:00
其实不过很懂术语的路过说一下, 一般html中的form才叫做“表单”。在你的例子中,“voice”是一个“数据库”,“list”是一个“表”,其中query select返回的一般叫“查询数据”,"voice_id"是"list"表中的一个"字段",对应原文是"database","table","field","data(or rows)",所以你的标题应该改为"如何获得数据表中的最后一条数据的voice_id"。

另外如果voice_id字段没有auto_increment属性,就不保证order by voice_id desc limit 1是最新的

建议LZ找本简单的mysql基础教程看完....
66450146
2012-03-20 16:27:12 +08:00
@benzhe 即使是auto_increment也不保证order by voice_id desc limit 1是最新的,所以还是加字段吧,没有更好的办法了
benzhe
2012-03-20 17:39:39 +08:00
@66450146 =__=,具体怎么加?当然前面的前提是不主动修改voice_id字段...
我想如果加了个create_time字段,如果主动改了还不是一样不能判断?...
66450146
2012-03-20 17:47:17 +08:00
@benzhe 要自己加一个create_time的。如果不想被主动改就写trigger吧。。。
Joa
2012-03-20 17:55:42 +08:00
//执行插入数据库的语句
$last_insert_id=mysql_insert_id();//$last_insert_id即为最后一条记录的ID

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/30102

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX