将PHP变量设置为MySQL行中的最新值

时间:2011-02-05 23:10:29

标签: php mysql

我搜索了旧问题,但无法找到答案或围绕任何相关内容(PHP和MySQl的新功能,所以请放轻松)!

我有一个带有列的MySQL表:id,subid,name;我运行了这个查询:

CREATE TABLE mytable (id int(999999) NOT NULL auto_increment,subid varchar(99) NOT NULL,name varchar(99) NOT NULL,PRIMARY KEY (id),UNIQUE id (id),KEY id_2 (id))

从我想要设置为 $ latestsubid 的最新行的 subid 中的值,这就是我设法放在一起的内容:

    <?
    $user="me";
    $password="blah";
    $database="mydb";
    $host="localhost";
    mysql_connect($host,$user,$password);
    @mysql_select_db($database) or die( "Unable to select database");
    $query="SELECT subid FROM mytable";
    $result=mysql_query($query);
    $num=mysql_numrows($result);
    mysql_close();
    ?>

如果有人能帮助我,那就太棒了!

3 个答案:

答案 0 :(得分:3)

我不确定我是否理解你想要实现的目标,但是如果你想从具有最高“id”值的表行获得“subid”列值,你可以这样做:

$query="SELECT subid FROM mytable ORDER BY id DESC LIMIT 1";
$result=mysql_query($query);
$row = mysql_fetch_assoc($result);
$latest_subid = $row['subid'];

这将对id降序的表进行排序(因此返回的第一行是id最高的那个),然后将结果限制为1行,

答案 1 :(得分:2)

也许您需要找到subid最大的行id

$query = "SELECT subid FROM mytable ORDER BY id DESC LIMIT 1";

$result = mysql_query($query) or trigger_error(mysql_error());

while ($row = mysql_fetch_assoc($result)) {
    $latestsubid = $row["subid"];
}

这假设您的id一直在增加。

答案 2 :(得分:2)

一衬垫:

$subid = mysql_result(mysql_query("SELECT subid FROM mytable ORDER BY id DESC LIMIT 1"),0);