2017-01-23 11 views
0

データベースから小数点を引っ張ってみようとしていますが、試してみるとintにしようとしていて、どうやって修正するのか分かりません。プログラマと呼ばれるに値する。誰かが助けてくれますか?mysqliがdbから10進値を引き出す

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

}

したがって、基本的には10進数ですデシベルでのお支払いを選択し、$ CurrentPaymentにそれを保存することになっていますが、それは小数のint作るしようとしていることができないため。

コードの残りの部分には、実際には問題がありません。それは正常に動作します。ちょうど10進数を正しく引き出す方法を知る必要があります。フェッチや何かと関係があると思いますか?私は知らない、誰かがこの哀れな人を助けてください?

答えて

1

私は問題が結果セット(配列)を数値に変換しようとしていると思います。 PHPは、あなたの数値が10進数か整数かを気にしません。

$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?

  • それはすべての中で一度つまずくする権利です:)

関連する問題