我正在尝试建立一个简单的web应用程序来跟上我的债务,我想使用相同的数据库表来增加和减少数据。
我使用一个简单的php操作将输入从输入域转换为负数:
$sum2 = $sum*-1; $sum作为输入字段:
$sum = $_POST['shuma'];这个想法是,当我输入一个正数时,我的债务会变大,当我输入一个负数时,我的债务会变小,这是一个简单的想法。
在MySQL数据库中,我将输入插入到:
decimal(7,2) Default:Null问题是,正输入,即使它被转换成负数,它也不会在MySQL中作为负数插入,它会再次插入正数。问题不在PHP中,因为我对它进行了测试,即使在表单提交并将数据推入MySQL之后,我仍然可以使用PHP中的回显来显示负数。
有谁知道怎么解决这个问题吗?
附注:也许我应该提一下,当我尝试直接从phpmyadmin插入负数时,它会接受同一字段中的负数。
谢谢。
发布于 2013-06-14 18:49:12
将字段类型更改为DECIMAL (10,2)。字段长度定义由您决定。根据您的需求定义length。
在这种情况下,将插入负值。如果没有,请执行您的查询并直接在mysql中执行。因为对于另一个字段的问题,即使字段类型是DECIMAL,也不能在表中插入负值。
发布于 2013-06-14 18:49:13
嗯,我尝试对这两个字段使用相同的输入字段,只使用一个复选框,当复选框被选中时,它是一个负数,否则它是正数
关于那条评论。
也就是说,你有
<input type="checkbox" name="negative"/>
<input type="text" name="sum" />
<?php
$sum = (int)$_POST['sum'];
...所以你可以有,比如说两种方法:
function increase($value) {
return query("UPDATE table SET value = value + $value");
}和
function decrease($value) {
return query("UPDATE table SET value = value - $value");
}因此,您正在检查:
if(isset($_POST['negative']) {
decrease($sum);
}
else {
increase($sum);
}但是,这些查询只是一个示例,我只是想解释一下其中的逻辑,其中您不需要添加带负号的数字,但您可以根据选中的输入更改查询
https://stackoverflow.com/questions/17106432
复制相似问题