0

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

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

$sum2 = $sum*-1; 

$sum 是输入字段:

$sum = $_POST['shuma'];

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

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

decimal(7,2) Default:Null

问题是,正输入,即使它被转换为负数,它并没有在 MySQL 中作为负数插入,而是用正数再次插入。问题不在 PHP 中,因为我对其进行了测试,即使在提交表单并将数据推送到 MySQL 之后,我仍然可以使用 PHP 中的 echo 获得显示的负数。

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

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

谢谢你。

4

2 回答 2

2

将您的字段类型更改为DECIMAL (10,2). 字段长度定义由您决定。length根据您的要求定义。

在这种情况下,将插入负值。如果没有,那么请 die(); 您的查询并直接在 mysql 中执行。因为对于另一个字段的问题,尽管字段类型是 DECIMAL,但也不会在表中插入负值。

于 2013-06-14T10:49:11.883 回答
2

好吧,我试图为两者使用相同的输入字段,只使用一个复选框,当它被选中时,它是一个负数,否则它是正数

关于那条评论。

即你有

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

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

于 2013-06-14T10:49:13.260 回答