我觉得有一个简单的解决方案,但我在任何地方都找不到它。
我有一个 while() 循环,在每个循环开始时,我从 MYSQL 数据库获得的数字中减去 1。但由于某种原因,它停在 0。如果从数据库中提取的值为 0 或负数,我需要该数字变为负数。
//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。但我需要它来继续减法。
提前致谢! 布兰登
已编辑:更新了上面的代码。有错误
最佳答案
我的猜测是您的 limit
列是一个 UNSIGNED INT
。无符号数可以是有符号数的两倍,但它们不能有负值(因此无符号)。
您可以使用 ALTER TABLE 语句将列更改为 INT
,但您需要小心,因为如果存储在 limit
中的任何值字段大于2147483647(如果将其更改为有符号INT),这些值将不会被保留。
关于PHP/MYSQL-数字运算在零处停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15227535/