2017-10-09 130 views
-1

我在這裏有一些問題。 我試圖從列中獲取數據(數據類型是浮點數)並顯示它。但它只顯示行數(即1)使用MySQL MAX()和PHP從數據庫中獲取數據

如何獲得我需要的確切'數字'?

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' __fetches array__。當你將'array'轉換爲'int'時,你期望什麼? –

+1

它顯示「1」,因爲你的查詢沒有失敗,在一定程度上。 –

+0

在一個數據庫中,你不應該使用float值作爲十進制值(直到明確需要),使用'decimal'或者'numeric',因爲它們存儲了確切的值,否則你可以以'3.999999999998'而不是'4.00'結束價格。 。 –

回答

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']; 

當您將arrayint只將其轉換爲一個布爾值。不是array的值。因此,請使用索引'max'來獲得所需的值,如您所見,我編輯了MySql查詢以添加as max它將爲'max'提供值。

+0

「當你將一個數組轉換爲一個int時,它只會將它轉換爲一個布爾值」你是什麼意思?將數組強制轉換爲int是無證行爲。 – ishegg

+0

@ishegg我不確定,但行爲確實表明這是布爾評估https://eval.in/876652 – mega6382

3

當您使用功能,有一個名字mysqli_fetch_array,這意味着結果這個功能是array。鑄造array類型爲int類型不符合您的期望。

相反,你需要使用什麼是公正的:

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