我有一个表中的数据的一些行的最后一个元素:虽然不指望一个数组
+-------------------+-------+
| 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