0

データベースから情報を取得するのに助けが必要です。私が必要とするのは、2 つの行から情報を取得して 1 つとして収集することです。これは、同じ主題に対して 2 セットのマークを取得する必要があるため、最初のコードは次のようになります。

SELECT scored_mark, total_mark
WHERE student_id ='$_SESSION[user_id]'
AND sub_id=$sid ORDER BY timestamp DESC LIMIT 2

しかし、今私が望むのは、両方を取得してパーセンテージを計算し、それらを PHP と HTML テーブルに次のように表示することです。

<?php

$first_score = $row['scored_mark']; 
$first_total = $row['total_mark'];
$first_mark_percentage = $first_score/$first_total*100

$sec_score = $row['scored_mark']; 
$sec_total = $row['total_mark'];
$sec_mark_percentage = $sec_score/$sec_total*100
?>
<table border="1">
<tr>
<th>Subject</th>
<th>1st Mark</th>
<th>2nd Mark</th>
</tr>
<tr>
<td>Maths</td>
<td>$first_mark</td>
<td>$sec_mark</td>
</tr>
</table>

そして、これは表の情報です:

student_id | sub_id | mark_type | scored_mark | total_mark | timestamp
-----------------------------------------------------------------------
55         |    75  |  4        |        45   |       50   | 13984356
55         |    75  |  4        |        80   |      150   | 13984145
55         |    76  |  4        |        20   |       50   | 13984301
42         |    21  |  3        |        38   |       50   | 13984569

更新:私が本当に問題を抱えている部分は次のとおりです。

<tr>
<td>Maths</td>
<td>$first_mark</td>
<td>$sec_mark</td>
</tr>

問題は、新しい行の情報になってしまうため、行に 2 つの結果を並べて表示することです。

4

3 に答える 3

1

これは、SQL クエリで実行できます。

これを試して:

SELECT scored_mark / total_mark * 100 AS percentage 
WHERE student_id = '$_SESSION[user_id]' 
    AND sub_id = $sid 
ORDER BY timestamp DESC 
LIMIT 2

結果は としてアクセスできます$row['percentage']

于 2013-05-24T08:58:03.833 に答える