2017-10-09 21 views
-1

ここにいくつか問題があります。 私は列から(データ型が浮動小数点型の)データを最大番号で取り出して表示しようとしました。しかし、それは行数(1です)を表示するだけですデータベースからPHPのデータを取得する際にmysql MAX()を使用する

私が必要とする正確な「番号」を得るにはどうすればいいですか?それは示して何

PHP

<?php 
    $sql= mysqli_query($con, "SELECT MAX(payment_price) FROM client_record WHERE payment_status ='Settled'"); 
    $row = (int)mysqli_fetch_array($sql); 
    echo $row; 

    ?> 

:私は確認する必要がどのような

1 

//the exact price that MAX() fetched 
20,000 
+4

'mysqli_fetch_array' __fetchches array__。 'array'を' int'にキャストするとどうなるでしょうか? –

+1

クエリーが失敗しなかったために「1」と表示されます。 –

+0

データベースでは、明示的に必要とされるまで10進値にfloat値を使用しないでください。正確な値を格納するので 'decimal'または' numeric'を使用してください。そうでなければ '4.00'の代わりに' 3.999999999998' 。 –

答えて

0

は、以下のことを試してみてください。

<?php 
$sql= mysqli_query($con, "SELECT MAX(payment_price) as max FROM client_record WHERE payment_status ='Settled'"); 
$row = mysqli_fetch_array($sql); 
echo $row['max']; 

あなたはそれが唯一のブール値としてそれを変換しintarrayを変換します。 arrayの値ではありません。だから、インデックス'max'を使用して、私はas maxを追加するMySqlクエリを編集したことがわかるので、それは'max'の値を提供します。

+0

"配列をintに変換すると、それをブール値として変換するだけです。"それはどういう意味ですか?配列をintにキャストすることは、文書化されていない動作です。 – ishegg

+0

@ishegg私にはわかりませんが、これはブール評価であることを示唆していますhttps://eval.in/876652 – mega6382

3

使用する機能として、名前mysqli_fetch_arrayを持っている、これがその結果を意味し、この関数の配列です。 arrayタイプからintタイプへの鋳造は、あなたが期待したことをしません。

代わりに、何を使用する必要があることだけである:

$row = mysqli_fetch_array($sql); 
print_r($row); 
// what you need is something like 
echo $row['MAX(payment_price)']; 
関連する問題