【问题标题】:Values from ms sql gives error when subtracted in php在 php 中减去时,ms sql 中的值会出错
【发布时间】:2017-08-10 16:39:02
【问题描述】:

我尝试从 ms sql server 中减去两个值,但我得到了错误。

以下是我的查询:

$amtdue = "select sum(case  when principal < 0 then principal else 0 end) as overdue, sum(case  when principal >= 0
                            then principal else 0 end) as overdue2  from loanhist where ac_no='$id' and trx_date <='$date' group by ac_no";
                            $amt = sqlsrv_query($conn, $amtdue);
                            $aod = sqlsrv_fetch_array($amt, SQLSRV_FETCH_ASSOC);

                            $amtdues = "select loan_amt from loans where ac_no='$id'";
                            $amts = sqlsrv_query($conn, $amtdues);
                            $lo = sqlsrv_fetch_array($amts, SQLSRV_FETCH_ASSOC);

以下是值:

                              $m = $lo['loan_amt']; //$m = 100000
                              $p = $aod['overdue']; //$p = -169172
                             $su = substr($p,1);
                             echo $su - $p;

当我从 $m 中减去 $p 时,我得到了 $m,即 169172。有人可以指点我正确的方向吗?

【问题讨论】:

    标签: php sql-server


    【解决方案1】:

    你没有从 $m 中减去 $p !你正在做的是:

    $m = 100000; //number
    $p = -169172;  //number
    $su = substr($p,1); //now $su is 169172
    echo $su - $p; // 169172 -(-169172)
    //which is 338344
    

    你应该做的是(如果我理解正确的话)

    $m = 100000; //number
    $p = -169172;  //number
    $su = substr($p,1); //now $su is 169172
    echo $su - $m; // 169172 - 100000
    //which is 69172
    

    【讨论】:

      【解决方案2】:

      你的最后一行代码:

      echo $su - $p;
      

      没有做你打算做的事情(p - m)

      应该是:

      echo $su - $m; 
      

      如果这仍然输出 0,我建议您的 $m 的 SQL 语句返回 0。

      【讨论】:

        猜你喜欢
        • 2011-04-21
        • 2020-08-29
        • 2011-07-24
        • 2017-11-30
        • 1970-01-01
        • 2018-04-30
        • 2016-11-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多