2017-01-23 48 views
0

我想从我的数据库拉小数,但是当我尝试它试图使它成为一个整数,我不知道如何解决它,因为我很笨,我不知道甚至不应该被称为程序员。有人可以帮忙吗?mysqli从分贝拉十进制值

if (isset($_POST['Add'])) { 

$Date = $_POST['Date']; 
$Amount = $_POST['Amount']; 
$LegalFees = 0.00; 
$CheckID = $_POST['Check_ID']; 

$DateAdded = date("Y/m/d", strtotime($_POST['Date'])); 

$result = mysqli_query($conn, "SELECT CheckID FROM checks WHERE CheckID='" . $CheckID . "'"); 
$CurrentPayment = mysqli_query($conn, "SELECT payments FROM checks WHERE CheckID='" . $CheckID . "'"); 

$TotalPayment = $Amount + $CurrentPayment; 

if (mysqli_num_rows($result) > 0) { 

    $sqlinsert = $conn->query("INSERT INTO payments (Date,Amount,LegalFees,CheckID)Values('{$DateAdded}','{$Amount}','{$LegalFees}','{$CheckID}')"); 
    $sqlupdate = $conn->query("UPDATE checks SET payments=" . $TotalPayment . " WHERE checkID=" . $CheckID . ""); 
} else { 
    $_SESSION["CheckIDFail"] = "Yes"; 
} 

}

所以基本上它应该选择在其中是一个小数分贝付款,并将其存储到$ CurrentPayment,但不能因为它试图使小数一个int。

其余代码我真的没有问题,它的工作原理应该如此。只需要知道如何使它正确拉小数。我认为这与抓取或什么有关?我不知道,有人请帮助这个可怜的人吗?

回答

1

我认为问题是试图将结果集(数组)转换为数字。 PHP不关心你的数字是小数还是整数。

$Date = $_POST['Date']; 
$Amount = $_POST['Amount']; 
$LegalFees = 0.00; 
$CheckID = $_POST['Check_ID']; 
$DateAdded = date("Y/m/d", strtotime($_POST['Date'])); 

$result = mysqli_query($conn, 
         "SELECT payments FROM checks WHERE CheckID='" . $CheckID . "'") 
      or die(mysqli_error($conn)); 


$currentPayment = 0; 

if (mysqli_num_rows($result) > 0){ 
    // Get the "row" from the "result set". 
    // While loop is only added to illustrate the method of iterating through the results 
    // If you only expect one row in the output, this should still work fine 
    while($row = mysqli_fetch_assoc($result)){ 
     $currentPayment += $row['payments']; 
    } 

    $TotalPayment = $Amount + $currentPayment; 


    mysqli_query($conn, "INSERT INTO payments (Date,Amount,LegalFees,CheckID) 
        values('{$DateAdded}','{$Amount}','{$LegalFees}','{$CheckID}')") 
        or die(mysqli_error($conn)); 

    mysqli_query($conn, "UPDATE checks SET 
        payments=" . $TotalPayment . " WHERE checkID=" . $CheckID . "") 
        or die(mysqli_error($conn)); 
} 
else { 
    // No rows returned 
    $_SESSION["CheckIDFail"] = "Yes"; 
} 


几件事情:

  • 保持一致性在查询中的一个节目内的类型(在实际上,即使内的应用)作为一个整体。尽量不要在程序(mysqli_query())和面向对象($conn->query)之间来回切换。

  • 使用准备好的查询,以防止SQL注入的威胁,在查询 - How to create a secure mysql prepared statement in php?

  • 这是在一段时间:)

跌倒一次没事