我从数据库获取$ final值并根据用户显示在表中。现在我有一个值,即这是我在前端展示的
Userid Total Letter
36 45
5 67
78 90
42 82
12 57
后端代码
$sql = mysql_query('SELECT userid, total FROM history');
echo '<table><th>Userid</th>
<th>Total</th>
<th>Grade</th>
while($row = mysql_fetch_array($sql))
{
echo '<tr><td>'.$row['userid'].'</td>
<td>'.$row['$total'].'</td>
$letter = mysql_query('SELECT score,letter FROM letter');
while($row = mysql_fetch_array($letter))
{
$score= $row['score'];
$letterp= $row['letter'];
switch($row['$total'])
{
case $row['$total'] == $score;
echo '<td>'.$letterp.'</td>';
break;
case $row['$total'] >= $score;
echo '<td>'.$letterp.'</td>';
break;
}
</tr>
}
I have a letter table
ID SCORE letter
1 100 A+
2 90 A-
3 80 B+
4 73 B-
5 65 C
6 55 D
7 45 E
8 0 F
Switch case是我在这里写的一个例子。我需要给出条件,如果用户ID得分为45,那么我需要显示字母E,如果用户ID得分为67,那么我需要显示B-(b'coz得分字段定义65到54是B-)。这是确切的要求。
答案 0 :(得分:1)
这样的事情应该做:
SELECT
CASE score
WHEN = 100 THEN 'A+'
WHEN >= 90 and < 100 THEN 'A-'
WHEN >= 80 and < 89 THEN 'B+'
WHEN >= 73 and < 80 THEN 'B-'
// and so one...
ELSE 'F'
END as myGrade,
studentID
from
table1
编辑:对不起,我以为你是想在数据库中做这件事(如果我只是想要成绩而不是得分,我可能会这样做。以下是PHP代码:
$myScore=90; // for example
function getMyScore($myScore)
{
if($myScore==100)
{
return 'A+';
}
elseif ($myScore >= 90 && $myScore <100)
{
return 'A-';
}
elseif ($myScore >= 80 && $myScore <90)
{
return 'B+';
}
// .....
else
{
return 'F';
}
}
$myGrade=getMyGrade($myScore);
echo $myGrade; // output: A-
基于我写的函数:
function getMyScore($myScore)
{
if($myScore==100)
{
return 'A+';
}
elseif ($myScore >= 90 && $myScore <100)
{
return 'A-';
}
elseif ($myScore >= 80 && $myScore <90)
{
return 'B+';
}
// .....
else
{
return 'F';
}
}
while($row = mysql_fetch_array($sql))
{
echo '<tr><td>'.$row['userid'].'</td><td>'.$row['$total'].'</td>';
// In your code:
$letter = mysql_query('SELECT score,letter FROM letter');
while($row = mysql_fetch_array($letter))
{
$score= $row['score'];
echo '<td>'.getMyGrade($row['letter']).'</td>';
}
echo'</tr>';
}