我有一個表中的數據的一些行的最後一個元素:雖然不指望一個數組
+-------------------+-------+
| criteria | value |
+-------------------+-------+
| Pengalaman Kerja | 4 |
| Pendidikan | 3 |
| Usia | 5 |
| Status Perkawinan | 2 |
| Alamat | 6 |
| Pengalaman Kerja | 3 |
| Pendidikan | 1 |
| Usia | 4 |
| Status Perkawinan | 2 |
| Alamat | 1 |
+-------------------+-------+
10 rows in set (0.00 sec)
我試着用fetch_object()
獲取他們都在PHP,然後轉換返回數據轉換爲數組並對錶中列出的每個條件的值進行求和。 例如:Pengalaman kerja
具有兩個值(4和3),以便對於Pengalaman Kerja
陣列結果將是7.
$result = $db->query($sql);
$value = array();
while($row=$result->fetch_object()){
if(!isset($value[$row->criteria]){
$value[$row->criteria] = 0;
})
$value[$row->criteria] += $row->value;
var_dump($value);
}
當我跑var_dump
到$value
(其現在包含的每個標準求和值)它顯示我:
array(5) {
["Pengalaman Kerja"]=>
int(7)
["Pendidikan"]=>
int(4)
["Usia"]=>
int(9)
["Status Perkawinan"]=>
int(4)
["Alamat"]=>
int(6)
}
Pengalaman kerja
是正確的,因爲4 + 3 = 7 Pendidikan
是正確的,因爲3 + 1 = 4 Usia
是正確的,因爲5 + 4 = 9 Status Perkawinan
是正確的,因爲2 + 2 = 4 而錯的是Alamat
顯示6,它應該是7,因爲6 + 1 = 7
我敢肯定,這是因爲Alamat
記錄之一是在最後的行並且while()
函數直到最後一行都沒有計數。 While()
功能只計算到最後 - 1
我該如何解決這個問題,因此Alamat
顯示7,因爲它是suppossed顯示?
其實,我使用SQL查詢也問這個問題之前做了什麼。只是尋找新的方法:) – januaryananda
更新我的答案,包括進一步的信息。 – brezanac
你能指點我在我的代碼中出了什麼問題嗎?你上面寫的代碼看起來和我的相似。沒有區別 – januaryananda