PHP/MYSQL-数字运算在零处停止

标签 php mysql loops while-loop

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

我有一个 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/

相关文章:

mysql - 由于 `Order by` 和 `Limit`,我的 SQL 运行速度非常慢

c - 如何在通过指向数组的指针访问时知道数组元素的数量

json - jq json对象连接到bash字符串数组

Python - 如何使用 xml.etree.ElementTree 迭代每个 xml 节点返回列表?

php - 使用 if 语句显示 JOIN 的多个结果

MySQL - 子查询返回多于 1 行

php - 从ajax成功请求将数据插入数据库

php - 根据提供的数量将多个相同的行插入 mysql 数据库

php - 正确的用户名和密码对 PHP 没有任何影响

javascript - 如何使用 AJAX 从 jquery 访问数据库单元