2017-11-30 12 views
0

まず、私はかなり新しいコードを作成しています。私は助言のためにここに来る前に私のデュー・ディリジェンスをしようとします。各ユーザーの平均数を確認

私は、データベースにユーザー番号を照会し、各ユーザーの平均を取得する関数を作成しようとしています。

function getUserAverage($userID) { 
    //loop through user totals & calculate average for each user 
    $sql = "select p.userID, p.user, p.number "; 
    $sql .= "from " . DB_PREFIX . "numbers p "; 
    $sql .= "inner join " . DB_PREFIX . "users u on p.userID = u.userID "; 
    $sql .= "where u.userID = " . $user->userID . " "; 
    $sql .= "order by u.lastname, u.firstname"; 
    $query = $mysqli->query($sql); 
    while ($row = $query->fetch_assoc()) { 
     //player average of numbers 
     $tba = ROUND(AVG(`number`),2); 

    } 
    $query->free; 
    return $tba; 
    } 

私が取得するために期待しています結果は次のようなものです:

USER1 = 14.5 user2が= 35.8 ユーザー3 - 、私はすべての平均番号を取得するコードを書かれている7.4

が、個々のユーザーがアクセスする必要があります。

//Average Numbers 

$sql_avgNum = "SELECT ROUND(AVG(`number`),2) AS `Average` \n" 
. "FROM `" . DB_PREFIX . "numbers` \n"; 
$data = $mysqli->query($sql_avgNum); 
$result_avgNum = mysqli_fetch_array($data); 
echo ' <tr class="altrow"><td> Average Number: </td><td> ' . 
$result_avgNum[0] . ' </td></tr>'; 

//End Average Numbers 
+0

あなたは数字のグループの平均を得ることができる - ことどのように平均が働くか。あなたは1人の値で平均Perユーザを取得する予定はありますか? PER per userのマルチプル値がある場合は、SATのように平均を見つけることができます。 – Innate

+0

私はこれを使って総平均数を取得しています。 (追加コード私はそれを使用しています。それは私はちょうどそのビルドする必要がありますか? – JerryH

答えて

0

個々のデータのカウント平均の場合は、group byを使用する必要があります。よるグループのさらなる参照はhereです:

0

、私は非常にわからないんだけど、私は、これはあなたが探しているものだと思い:

function getUserAverage($userID) { 
    // loop through user totals & calculate average for each user 
    $sql = "SELECT p.userID, u.user, AVG(p.number) AS 'avarage' "; 
    $sql .= "FROM " . DB_PREFIX . "numbers p "; 
    $sql .= "INNER JOIN " . DB_PREFIX . "users u ON(p.userID = u.userID) "; 
    $sql .= "WHERE p.userID = " . $user->userID . " "; 
    $sql .= "GROUP BY p.userID "; 
    $sql .= "ORDER BY u.lastname, u.firstname"; 
    $query = $mysqli->query($sql); 

    while ($row = $query->fetch_assoc()) { 
     //player average of numbers 
     $tba = $row['avarage']; 

    } 

    $query->free; 
    return $tba; 
} 
+0

これは近いと思います。私はWHEREを削除し、SQLで実行し、目的の結果を取得します。致命的なエラー:320行目の/includes/functions.phpにあるメンバ関数fetch_assoc()を呼び出す – JerryH

+0

クエリにエラーが発生した場合は、$ query varはbillまたはfalseになります。 – Gomes

関連する問題