• 请不要在回答技术问题时复制粘贴 AI 生成的内容
jackhe
V2EX  ›  程序员

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

  •  
  •   jackhe · Mar 20, 2012 · 6104 views
    This topic created in 5187 days ago, the information mentioned may be changed or developed.
    刚学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 replies    1970-01-01 08:00:00 +08:00
    qq286735628
        1
    qq286735628  
       Mar 20, 2012
    你的表单的代码呢?
    $_POST['id']?
    kojp
        2
    kojp  
       Mar 20, 2012
    limit
    kojp
        3
    kojp  
       Mar 20, 2012
    0,1

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

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

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

    感谢大家
    jackhe
        10
    jackhe  
    OP
       Mar 20, 2012
    @justfindu

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

    看楼主代码,把h1放进循环里了,不妥
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   973 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 55ms · UTC 21:44 · PVG 05:44 · LAX 14:44 · JFK 17:44
    ♥ Do have faith in what you're doing.