2015-10-05 49 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.

回答