次のMySqlステートメントがあります.whileループで「ランキング」の累積合計を取得できません
SELECT *,
q1 + ((q1 + q2 + q3 + q4 + q5 + q6) / 6)
AS ranking
/ SUM(ranking)
FROM table
WHERE field = :field
GROUP by id
私のクエリのこの部分は完全に機能します:
q1 + ((q1 + q2 + q3 + q4 + q5 + q6) / 6)
AS ranking
「AS ランキング」値をクエリ出力の各「ランキング」行の合計で割り、while ループの $rankingPercentage 変数に返す必要があります。
q1
q2
q3
q4
q5
q6
1 つのテーブル内のすべてのフィールドであり、0 から 100 までの数値 (VARCHAR) が含まれています。
SQLクエリで返されたすべての「ランキング」行の合計で割った「ランキング」(「ASランキング」の上の私の式)である$rankingPercentageの出力を返すことを期待しています。
以下の私のWhileループ:
while($row = $sqlprep->fetch(PDO::FETCH_OBJ)){
$ranking = $row->ranking;
echo '<tr valign="bottom"><td>' . $row->id . '</td>';
echo '<td>' . $row->uid . '</td>';
echo '<td>' . $row->q1 . '</td>';
echo '<td>' . $row->q2 . '</td>';
echo '<td>' . $row->q3 . '</td>';
echo '<td>' . $row->q4 . '</td>';
echo '<td>' . $row->q5 . '</td>';
echo '<td>' . $row->q6 . '</td>';
echo '<td>' . $row->q9 . '</td>';
echo '<td class="capitalise">' . $ranking. '</td>';
echo '<td class="capitalise">' . $rankingPercentage . '</td>';
echo '</tr>';
}