我觉得有一个简单的解决方案,但我在任何地方都找不到。
我有一个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。但我需要它来保持减法。
提前感谢!布兰登
编辑:更新了上面的代码。有一个错误
发布于 2013-03-05 23:29:25
我猜测yout limit列是一个UNSIGNED INT。无符号数可以是有符号数的两倍,但它们不能有负值(因此是无符号的)。
您可以使用ALTER TABLE语句将列更改为INT,但需要小心,因为如果存储在limit字段中的任何值大于2147483647 (如果将其更改为带符号的整数),则不会保留这些值。
发布于 2013-03-05 23:29:19
删除额外的=符号
$newlimit = $limit - 1;并在SQL语句中将$newlim替换为$newlimit。
还请注意,您可以在没有任何循环或php的情况下在一条SQL语句中执行相同的操作:
UPDATE `members` SET `limit`=`limit`-1https://stackoverflow.com/questions/15227535
复制相似问题