首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP/MYSQL- Number操作在零处停止

PHP/MYSQL- Number操作在零处停止
EN

Stack Overflow用户
提问于 2013-03-05 23:23:30
回答 2查看 506关注 0票数 0

我觉得有一个简单的解决方案,但我在任何地方都找不到。

我有一个while()循环,在每个循环的开始,我从MYSQL数据库中得到的数字中减去1。但由于某种原因,它在0处停止。如果从数据库中提取的值是0或负数,我需要将该数字变为负数。

代码语言:javascript
复制
    //Get members
$select = mysql_query("SELECT * FROM members") or die(mysql_error());

//Start the loop
while($members= mysql_fetch_row($select)){

//Get limit
$limit = $members['limit'];
    $newlimit = $limit - 1;

mysql_query("UPDATE `members` SET `limit` = '".$newlim."' WHERE `email`='".$members['email']."'");
}

有什么建议吗?此代码成功工作,直到该值变为0。但我需要它来保持减法。

提前感谢!布兰登

编辑:更新了上面的代码。有一个错误

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-05 23:29:25

我猜测yout limit列是一个UNSIGNED INT。无符号数可以是有符号数的两倍,但它们不能有负值(因此是无符号的)。

您可以使用ALTER TABLE语句将列更改为INT,但需要小心,因为如果存储在limit字段中的任何值大于2147483647 (如果将其更改为带符号的整数),则不会保留这些值。

票数 2
EN

Stack Overflow用户

发布于 2013-03-05 23:29:19

删除额外的=符号

代码语言:javascript
复制
$newlimit = $limit - 1;

并在SQL语句中将$newlim替换为$newlimit

还请注意,您可以在没有任何循环或php的情况下在一条SQL语句中执行相同的操作:

代码语言:javascript
复制
UPDATE `members` SET `limit`=`limit`-1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15227535

复制
相关文章

相似问题

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