У меня есть несколько строк данных на столе, как показано ниже:Пока не сосчитать до последнего элемента массива
+-------------------+-------+
| 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)
Я попытался принести их в PHP с помощью fetch_object()
, а затем преобразовать возвращенное данных в массивы и суммировать значения каждого критерия, указанного в таблице. пример: 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, как это предполагается, чтобы показать?
На самом деле, я сделал с помощью SQL-запрос тоже прежде чем задавать этот вопрос. Просто ищет новые способы :) – januaryananda
Обновлен мой ответ, чтобы включить дополнительную информацию. – brezanac
Не могли бы вы указать мне, что в коде изменилось? Ваш код, написанный выше, похож на мой. Нет никакой разницы – januaryananda