2016-12-08 53 views
0

如何顯示mysql中列的平均值?如何顯示mysql的平均值

下面是我的代碼,我至今嘗試過:

<?php 
    if (isset($_GET["age"])); 
    $age = ($_GET["age"]); 
    include($_SERVER["DOCUMENT_ROOT"] . "/includes/config.php"); 

    // Input 
    $sql = "SELECT AVG(column_name) FROM table_name"; 

    // Check age 
    if ($age > 99 or $age < 5) { 
    echo ("We only store data of people between the age of 5 and 99."); 
    if (!mysqli_query($conn, $sql)) { 
     die('Error: ' . ((is_object($GLOBALS["___mysqli_ston"])) ? mysqli_error($GLOBALS["___mysqli_ston"]) : (($___mysqli_res = mysqli_connect_error()) ? $___mysqli_res : false))); 
    } 
    } 
    else { 
    echo ("We got it!"); 
    } 

    // Close connection 
    ((is_null($___mysqli_res = mysqli_close($conn))) ? false : $___mysqli_res); 

    die(); 
?> 

但如何準確定義與AVG結果的變量,最大的2位小數?

我想使用並顯示到另一個文件(所以我會包括這一個)。

我現在所擁有的

<?php 
if (isset($_GET["age"])); 
$age = ($_GET["age"]); 
include($_SERVER["DOCUMENT_ROOT"] . "/3/includes/config.php"); 
include($_SERVER["DOCUMENT_ROOT"] . "/3/includes/opendb.php"); 

// My own created code 
$sql = $conn->query("SELECT ROUND(AVG(price AS FLOAT), 2) FROM data WHERE age= '$age'"); 
$data = $sql->mysqli_fetch_assoc(); 
$avg_data = $data['price']; 
echo $avg_data; 

// This below is from an other post but don't know how it works and if it is good. 
$ratings = $conn->query("SELECT AVG(price) avg_rating FROM data form_id = '" . $age . "'"); 
$data2 = $ratings->mysqli_fetch_assoc(); 
$avg_rating = $data2['avg_rating']; 
echo $avg_rating; 

die(); 

?> 
+4

您只執行查詢,但從不提取結果。 – Daan

+1

'ROUND(AVG(column_name),2)'? – Blank

+1

哪裏是獲取數據的代碼? –

回答

0

我如何固定它:

<?php 

if (isset($_GET["age"])) { 
$age = ($_GET["age"]); 

include($_SERVER["DOCUMENT_ROOT"] . "/3/includes/config.php"); 

$con=mysqli_connect($dbhost,$dbuser,$dbpass,$dbname); 

if (mysqli_connect_errno($con)) { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 

$result = mysqli_query($con,"SELECT AVG(price) FROM data WHERE age= '$age'") or die("Error: " . mysqli_error($con)); 

while($row = mysqli_fetch_array($result)) { 
    echo $row['AVG(price)']; 
    echo number_format($row['AVG(price)'], 2); 
} 

die(); 
} 
else { 
echo 'Something went wrong, try again.'; 
} 

?> 
0

使用像這樣來平均witth兩個小數點。

$sql = "SELECT ROUND(AVG(column_name AS FLOAT), 2) FROM table_name"; 
+0

好吧,以及如何將它綁定到一個變量,所以我可以回顯出來?檢查我的問題的結尾,查看我現在擁有的代碼。 – Julian

+0

綁定在變量手段?你想要做什麼? –

+0

好吧,我想取回它,以便我可以迴應結果。 – Julian

0
$sql = 'SELECT *, ROUND(AVG(column_name), 2) AS avg_value FROM table_name'; 

avg_value將存儲四捨五入+平均值,並添加*如果需要獲得所有的列。

+0

儘管此代碼片段可能會解決問題,但其中的解釋確實有助於提高帖子的質量。請記住,您將來會爲讀者回答問題,而這些人可能不知道您的代碼建議的原因。也請儘量不要用解釋性註釋來擠佔代碼,這會降低代碼和解釋的可讀性! –

+0

好的。我會嘗試閱讀更多其他人發佈和學習的內容。感謝您的建議:)。 –