2015-10-05 53 views
1

我想显示从PHP查询的HTML页面上的表格。这三个阵列将始终具有相同的长度:从PHP的SQL查询操作数组来显示它在HTML?

while ($row = sqlsrv_fetch_array($query)) 
{ 
    $SUBJECT[] = "$row[SUBJECT]"; 
    $SECTION[] = "$row[SECTION]"; 
    $SCORE[] = "$row[SCORE]"; 
} 
// I know this part is confusing. I will elaborate why i am doing this later 
$count = []; 
$total = []; 
$perc = []; 

for($i = 0, $length = count($SUBJECT); $i < $length; $i++) 
{ 
    if(!isset($count[$SECTION[$i]][$SUBJECT[$i]])) 
    { 
     $count[$SECTION[$i]][$SUBJECT[$i]] = 0; 
     $total[$SECTION[$i]][$SUBJECT[$i]] = 0; 
    } 
    $count[$SECTION[$i]][$SUBJECT[$i]]++; 
    $total[$SECTION[$i]][$SUBJECT[$i]] += $SCORE[$i]; 
    $perc[$SECTION[$i]][$SUBJECT[$i]] = round($total[$SECTION[$i]][$SUBJECT[$i]]/$count[$SECTION[$i]][$SUBJECT[$i]],2); 
} 

echo "<table border='1' cellpadding='5' cellspacing='0' style='border-collapse:collapse;'>"; 
echo "<tr><td></td><td>" . implode("</td><td>", array_unique($SUBJECT)) . "</td></tr>"; 
foreach(array_unique($SECTION) as $v) 
{ 
    echo "<tr><td>$v</td>"; 
    foreach(array_unique($SUBJECT) as $key) 
     echo "<td>" . (isset($perc[$v][$key]) ? $perc[$v][$key] : "0") . "</td>"; 
    echo "</tr>"; 
} 
echo "</table>"; 

这对我的HTML表格是这样的(此表中的值已经平均)输出像这样的表:

   Math Science  English  History  PE 
Section A  90   50   40   60  100 
Section B  60   50   70   70  90 
Section C  60   50   70   20  80 

这是我需要什么帮助: 我想在显示所有主题的平均值的部分下创建一个整体行。因此,这将是这样的:

Overall 70 50 60 50 90 

我知道后我会像这样开头的foreach(array_unique($SECTION) as $v)

} 
echo "<tr><td>Overall</td>"; 
echo "<td>". ."</td>"; 
echo "</tr>"; 
echo "</table>; 

现在我想我需要重新安排从一开始就不同的阵列:

$SUBJECT[] = ('MATH', 'SCIENCE', 'HISTORY', 'MATH', 'PE'.....) 
$SECTION[] = ('A', 'C', 'B', 'B', 'A'...) 
$SCORE[] = (50, 80, 70, 80, 60 ...) 

所以这一小块代码的目的是创建这个表,其中有主题和部分,并告诉平均分数(本质上每个学生sql都有,所以我平均分因为我可以显示每个部分和每个主题的数据)。

那么如何为主题和部分创建一个整体行?

UPDATE: 我才意识到我比它需要这个困难:

我想我的问题是我有两个数组:

$SUBJECT[] = ('MATH', 'SCIENCE', 'HISTORY', 'SCIENCE', 'PE', 'MATH', 'PE', 'PE'); 
$SCORE[] = (50, 100, 70, 60, 90, 70, 80, 100); 

我想创建一个新的阵列,显示给我这个平均: 所以我打电话:$newarray['MATH'] = 60; $newarray['SCIENCE'] = 80; $newarray['PE'] = 90; etc.

回答