用PHP在MySQL中插入负数的问题

时间:2013-06-14 10:29:26

标签: php mysql

我正在尝试构建一个简单的Web应用程序来跟上我的债务,我想使用相同的数据库表来添加和减去数据。

我正在使用简单的php操作转换输入字段的输入,将其转换为负数:

$sum2 = $sum*-1; 

$ sum是输入字段:

$sum = $_POST['shuma'];

理念是,当我输入正数时,我的债务会变得更大,当我输入负数时,我的债务会变小,这是一个简单的想法。

在MySQL数据库中,我将输入插入:

decimal(7,2) Default:Null

问题是,正输入,即使它被转换为负数,它也没有在MySQL中插入为负数,它再次插入一个正数。这个问题不在PHP中,因为我测试了它,甚至在它提交的表单和数据被推送到MySQL之后,我仍然可以使用PHP中的echo显示负数。

有谁知道如何解决这个问题?

P.S。也许我应该提一下,当我尝试直接从phpmyadmin插入负数时,它可以工作,它接受同一字段中的负数。

谢谢。

2 个答案:

答案 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);
}

但是,查询只是一个示例,我只是想解释逻辑,在那里你不需要添加带负号的数字,但你可以根据检查的输入更改查询