获取mysql中字段的最后一个值

时间:2014-05-17 12:54:15

标签: php mysql sql fetch

我试图在新注册期间获取字段的最后一个值。 在将数据插入表之前,我想根据最后注册用户的id号创建用户ID号。要做到这一点我用这个:

//to reach the last value of userID field;
$sql = "SELECT userID FROM loto_users ORDER BY userID DESC LIMIT 1";        
$result = mysql_query($sql);
while($row = mysql_fetch_array($result))
{
   $value = $row['userID'];
   echo "$value";            //not resulting here
}
$userID = $value+1;

因此,userID变为1。

奇怪的是,我能够在另一个php文件中使用完全相同的代码并且工作正常。

我想说,其余代码运行正常。数据库连接没问题,或者你可以告诉我任何其他事情。

注意:当我在mysql界面中运行相同的查询行时,我可以得到我想要的值。我的意思是$sql行。

3 个答案:

答案 0 :(得分:4)

您的问题出在以下代码中:

{
   $svalue = $row['userID'];
----^
   echo "$value";            //not resulting here
}
$userID = $value+1;

更改为$value

但正确的答案是将userID定义为自动递增。这样,数据库就能为您完成工作。插入行后,您可以执行以下操作:

SELECT LAST_INSERT_ID()

获取最后一个值。

答案 1 :(得分:0)

我解决了这个问题。这里;

$sql = "SELECT userID FROM loto_users ORDER BY userID DESC LIMIT 1";    
$result = mysql_query($sql);
$user_info = $result->fetch_assoc();
$value = intval($user_info["userID"]);
$userID = $value+1;

谢谢大家。

答案 2 :(得分:0)

如果在mysql表中将userID字段标记为自动增量。

您不需要设置userID,db也会为您增加userID。您可以使用mysql_insert_id()函数获取分配的userID。这是一个来自php.net的例子

mysql_query("INSERT INTO mytable (product) values ('kossu')");
printf("Last inserted record has id %d\n", mysql_insert_id());

以下是您案例的另一个例子

mysql_query("INSERT INTO 'loto_users'('username',...) values('usernameValue',...)");
echo "New User id is ".mysql_insert_id();