jackhe
V2EX  ›  程序员

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

By jackhe at 2012 年 3 月 20 日 · 6412 次点击
刚学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?
22 条回复  •  1970-01-01 08:00:00 +08:00
qq286735628
   1
qq286735628  
   2012 年 3 月 20 日
你的表单的代码呢?
$_POST['id']?
kojp
   2
kojp  
   2012 年 3 月 20 日
limit
kojp
   3
kojp  
   2012 年 3 月 20 日
0,1

desc
iamdbc
   4
iamdbc  
   2012 年 3 月 20 日
是表单还是数据库?
jackhe
   5
jackhe  
OP
   2012 年 3 月 20 日
@iamdbc 表单
jackhe
   6
jackhe  
OP
   2012 年 3 月 20 日
$result=mysql_query("SELECT* FROM list WHERE voice_id= ");
justfindu
   7
justfindu  
   2012 年 3 月 20 日
怎么感觉这个问题就像 : 小明有5个红苹果,4个绿苹果,请问橘子怎么卖一样.

表单的最后一条指?
表单或通过$_GET / $_POST /$_REQUEST 获得,对应其name属性
justfindu
   8
justfindu  
   2012 年 3 月 20 日
你指的是数据库最后一条吧~ select * from list limit 0,1 order by voice_id desc
jackhe
   9
jackhe  
OP
   2012 年 3 月 20 日
搞定了

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

感谢大家
jackhe
   10
jackhe  
OP
   2012 年 3 月 20 日
@justfindu

是的,谢谢
opennet
   11
opennet  
   2012 年 3 月 20 日
你说的是数据库表的最后一条记录ID吧?
iamdbc
   12
iamdbc  
   2012 年 3 月 20 日
@jackhe 这个是从数据库把voice_id排序以后获得的吧?
66450146
   13
66450146  
   2012 年 3 月 20 日
提醒一下楼主,MySQL并没有保证这种情况下id最大的数据一定是最新的
jackhe
   14
jackhe  
OP
   2012 年 3 月 20 日
@66450146
那如何处理呢?
66450146
   15
66450146  
   2012 年 3 月 20 日
@jackhe 加一个字段
benzhe
   16
benzhe  
   2012 年 3 月 20 日
其实不过很懂术语的路过说一下, 一般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
   17
66450146  
   2012 年 3 月 20 日
@benzhe 即使是auto_increment也不保证order by voice_id desc limit 1是最新的,所以还是加字段吧,没有更好的办法了
benzhe
   18
benzhe  
   2012 年 3 月 20 日
@66450146 =__=,具体怎么加?当然前面的前提是不主动修改voice_id字段...
我想如果加了个create_time字段,如果主动改了还不是一样不能判断?...
66450146
   19
66450146  
   2012 年 3 月 20 日
@benzhe 要自己加一个create_time的。如果不想被主动改就写trigger吧。。。
Joa
   20
Joa  
   2012 年 3 月 20 日
//执行插入数据库的语句
$last_insert_id=mysql_insert_id();//$last_insert_id即为最后一条记录的ID
Joa
   21
Joa  
   2012 年 3 月 20 日
HO 看错了还以为是最后插入的id
qiayue
   22
qiayue  
   2012 年 3 月 20 日
我插一个题外话
一般一个html页面,一个h1标签为好

看楼主代码,把h1放进循环里了,不妥
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
© 2026 V2EX · 41ms · 3.9.8.5