I'm having trouble getting this loop to return all of the rows that I know mysql is generating in this query. The objects in my javascript console are returning as I would like them to; however, I'm only getting the last row from each unique $row->student_id
. I can tell that each unique row->student_id
is being overwritten by the previous, but I'm not sure how else to do this logic.
This is part of a Codeigniter model. My controller is performing a json_encode function on this function, then I'm pulling this data into my view with jQuery $.ajax
wired to a handlebars.js template. I'm aware that I could use ember for data bindings, but that is beyond my expertise at this time.
$query = $this->db->get();
if ($query->num_rows() > 0) {
$prev = null;
foreach ($query->result() as $row) {
if ($prev != $row->student_id) {
$data[$row->student_id] = array(
'first' => $row->last_name,
'last' => $row->first_name);
$data[$row->student_id]['dorc'] = array($row->debit_or_credit);
$prev = $row->student_id;
} else {
$data[$row->student_id]['dorc'][] += $row->debit_or_credit;
}
}
return $data;
} else {
return array();
}`