V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jackhe
V2EX  ›  程序员

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

  •  
  •   jackhe · 2012-03-20 12:01:46 +08:00 · 5386 次点击
    这是一个创建于 4635 天前的主题,其中的信息可能已经有所发展或是发生改变。
    刚学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-03-20 12:12:22 +08:00
    你的表单的代码呢?
    $_POST['id']?
    kojp
        2
    kojp  
       2012-03-20 12:41:58 +08:00
    limit
    kojp
        3
    kojp  
       2012-03-20 12:42:46 +08:00
    0,1

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

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

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

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

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

    看楼主代码,把h1放进循环里了,不妥
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3250 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 12:31 · PVG 20:31 · LAX 04:31 · JFK 07:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.