我正在尝试构建一个简单的Web应用程序来跟上我的债务,我想使用相同的数据库表来添加和减去数据。
我正在使用简单的php操作转换输入字段的输入,将其转换为负数:
$sum2 = $sum*-1;
$ sum是输入字段:
$sum = $_POST['shuma'];
理念是,当我输入正数时,我的债务会变得更大,当我输入负数时,我的债务会变小,这是一个简单的想法。
在MySQL数据库中,我将输入插入:
decimal(7,2) Default:Null
问题是,正输入,即使它被转换为负数,它也没有在MySQL中插入为负数,它再次插入一个正数。这个问题不在PHP中,因为我测试了它,甚至在它提交的表单和数据被推送到MySQL之后,我仍然可以使用PHP中的echo显示负数。
有谁知道如何解决这个问题?
P.S。也许我应该提一下,当我尝试直接从phpmyadmin插入负数时,它可以工作,它接受同一字段中的负数。
谢谢。
答案 0 :(得分:2)
将您的字段类型更改为DECIMAL (10,2)
。场长定义在你身上。根据您的要求定义length
。
在这种情况下,将插入负值。如果没有,那么请死();您的查询并直接在mysql中执行它。因为对于另一个字段的问题,虽然字段类型是DECIMAL,但是否则不在表中插入负值。
答案 1 :(得分:2)
好吧,我正在尝试为两者使用相同的输入字段,只使用a 复选框,当它被选中时,它是负数,否则 这是积极的
关于该评论。
即。你有
<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);
}
但是,查询只是一个示例,我只是想解释逻辑,在那里你不需要添加带负号的数字,但你可以根据检查的输入更改查询