2015-08-14 77 views
0

我有一个表格,其中的字段数随操作而变化。将其简化为如下表格在动态表中添加mysql数据库中的一行的值

STUDENT MATHS PHYSICS BIOLOGY TOTAL 

PAUL  89  87  65  

JOHN  56  89  54  

目标是总结每个学生在总列中的分数。我已经写了一个小的PHP代码,但没有给我总的结果。我也尝试过其他的变化(我可能不想发布),但没有奏效。任何建议请。

$table = 'scores'; 
$total = ''; 
$result = mysql_query("SELECT * FROM $table"); 

if (!$result) { 
    die("Query to show fields from table failed"); 
} 

$fields_num = mysql_num_fields($result); 
//table to display student scores 
echo "<table><tr>"; 

for ($i=0; $i<$fields_num; $i++) { 
    $field = mysql_fetch_field($result); 
    echo "<th>$field->name</td>"; 
} 

echo "</tr>\n"; 

while ($row = mysql_fetch_object($result)) { 
    $student_id=$row->student_id; 
    echo "<tr>"; 
    foreach($row as $cell) { 
     echo "<td> $cell </td>"; 
    } 
    // calcuate the total score of each record 
    $total =($cell + $total); 
    echo "</tr>\n"; 
    echo 'The total = '.$total; 
} 

// functio to insert the total scores t the table 
function tScore($table, $student_id, $total) { 
    $sqlCommand = "UPDATE $table SET total='$total' WHERE student_id='$student_id' "; 
    $query = mysql_query($sqlCommand) or die ('Sorry something went wrong while inserting Subjects Scores'); 

    return $total; 
    return $student_id; 
} 
?> 
+0

见正常化。数据库表格不是电子表格。 – Strawberry

回答

0

您的查询应该是这样的

$sel="select *,(sum(Maths)+sum(Physics)+sum(Biology)) as Total from sum group by Student"; 
+0

谢谢,这只会有效,只是这些字段是动态的,并会随着操作而改变,说另一个课程“语言”将被添加。每次发生这种情况时,我都不希望更改代码 – Jomaz