$quiztotal = mysql_query('SELECT id,username,qname,quizpercentage FROM quiz');
echo '<table><tr><th>USERNAME</th>
<th>QUIZ NAME</th>
<th>PERCENTAGE</th>
<th>GRADE</th>
<th>POINTS</th></tr>';
while($row = mysql_fetch_array($quiztotal))
{
$username = $row['username'];
$qtotal = $row['quizpercentage'];
$defaultsetting = mysql_query('SELECT id,letter,percentage,points FROM default');
while($row = mysql_fetch_array($defaultsetting))
{
$letter = $row['letter'];
$percentage = $row['percentage'];
$points = $row['points'];
echo '<tr><td>'.$username.'</td>
<td>'.qtotal.'</td>';
echo 'td>';
if(qtotal == $percentage)
{
echo $letter;
}
echo '</td>';
echo '<td>';
if($letter)
{
echo $points;
}
echo '</td></tr>';
}
}
测验表
id username quizpercentage
1 35 66%
2 47 78%
3 53 90%
4 56 96%
5 4 45%
默认表
id letter percentage points
1 A >=85 4.00
2 B 80-84 3.67
3 C 83-75 2.65
4 D 74-55 2.00
这里&gt; = 85没有从85%到100%开始 80-84%是80%,81%和84% 我怎样才能正确匹配,如果用户得分为88%,我怎样才能给每个用户评分,如果等级是A / B / C / D我也应该显示点数 我需要像
这样的输出 USERNAME QUIZ NAME PERCENTAGE GRADE POINTS
35 TestSeries 85% A 4.00
47 TestSeries 70% C 2.65
53 preliminary 62% D 2.00
答案 0 :(得分:3)
您无法使用目前的表格结构轻松完成,您需要进行一些更改。第一个是更改Quiz
表格,以便字段QuizPercentage
包含一个数字(不包含&#34;%&#34;符号)。无论如何都应该这样做,因为格式化属于网页,而不是数据库。
下一步是向表default
添加两列(这真的是名字吗?如果是,它也不是一个好名字)。两个新列将如下:
- PercentageFrom int
- PercentageTo int
它们将分别包含每个得分范围的最小值和最大值。这意味着你的表格看起来像这样:
id letter percentage points PercentageFrom PercentageTo
1 A >=85 4.00 85 100
2 B 80-84 3.67 84 84
3 C 83-75 2.65 75 83
4 D 74-55 2.00 55 74
现在您只需要将Quiz
表与Scores
表联系起来,即可获得所需的数据。
SELECT
Q.id
,Q.username
,Q.qname
,Q.quizpercentage
,S.Letter
,S.Points
FROM
Quiz Q
JOIN
Scores S ON
(Q.quizpercentage BETWEEN S.PercentageFrom AND PercentageTo)
答案 1 :(得分:2)
您的默认值只能由人类阅读,它应如下所示:
id letter percentage_from percentage_to points
1 A 85 100 4.00
2 B 80 84 3.67
3 C 75 79 2.65
4 D 55 74 2.00
5 E 0 54 2.00
然后您的查询可以是:
$quiztotal
= mysql_query(
'SELECT quiz.id, quiz.username,quiz.qname, default.letter, default.points
FROM quiz, default
where quiz.quizpercentage <= defaut.percentage_to
and quiz.quizpercentage >= defaut.percentage_from');
并且您拥有所需的所有信息
答案 2 :(得分:0)