首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP MySQL max()函数生成5

PHP MySQL max()函数生成5
EN

Stack Overflow用户
提问于 2011-09-23 04:05:17
回答 7查看 3K关注 0票数 0

我正在做一个由PHP和MySQL创建的调查。所以问题是,我正在尝试创建一个ResponseID,它是每个提交调查的人的特定ID。因此,创建代码的目的是将ResponseID列中现有的最大值加1。代码如下:

代码语言:javascript
复制
//Response ID creation 
$query = "SELECT max(ResponseID) FROM survey";
$res = mysql_query($query);
$RID = $res+1; 

我知道我可以压缩它,但问题是:我已经在表格上输入了一个ResponseID为1的项目。当我用不同的答案测试调查时,下一个ResponseID是5。它应该是2。所以我再次测试,看看下一次是否会产生6。

不幸的是,它再次产生了5。我让我的PHP专家检查了一下,他说代码是正确的,应该是来自数据库的东西。我没有在ResponseID中设置任何东西,除了它是一个整数。那么为什么它会产生一个5呢?如果有人可以告诉我如何去修复它,那将是非常酷的你。

我对PHP有些陌生。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2011-09-23 04:11:45

$res将是mysql语句句柄,而不是查询的结果。您仍然需要从这个$res结果中实际提取一行,才能访问查询中的max()函数的值。

这个句柄可能在内部有标识符#5,这就是为什么你会得到“奇怪”的结果。

代码应该是:

代码语言:javascript
复制
$sql = "SELECT MAX(responseID) AS max ...";
$result = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_assoc($result);

$RID = $row['max'] + 1;
票数 1
EN

Stack Overflow用户

发布于 2011-09-23 04:09:17

$res是一个资源,而不是查询的值,请阅读手册:http://nz.php.net/manual/en/function.mysql-query.php

票数 1
EN

Stack Overflow用户

发布于 2011-09-23 04:11:14

为什么不使用AUTO_INCREMENT列并使用mysql_insert_id检索新值

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7520773

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档