Вопрос:

Codeigniter Создать запрос Foreach, используя Select_SUM для значений столбцов?

arrays codeigniter foreach sum

253 просмотра

1 ответ

57 Репутация автора

Я успешно повторил "1st CA", "2nd CA" и "Exam" в представлении Codeigniter. Вы увидите, что на этих изображениях ниже

Просмотр отчета и код
В скриншоте отчета отсутствует запрос foreach для общего столбца

Вот код просмотра ниже

  <td bgcolor="#CCCCCC"><div align="center" class="style2"><?php
                    $obtained_second_ca_query = $this->db->get_where('mark' , array(
                                                'subject_id' => $row3['subject_id'],
                                                    'exam_id' => $exam_id,
                                                        'class_id' => $class_id,
                                                            'student_id' => $student_id , 
                                                                'year' => $this->db->get_where('settings' , array('type' => 'running_year'))->row()->description
                                            ));
                    if($obtained_second_ca_query->num_rows() > 0){
                        $marks2 = $obtained_second_ca_query->result_array();
                        foreach ($marks2 as $row4) {
                            echo $row4['second_ca'];
                            $total_marks += $row4['second_ca'];
                        }
                    }
                ?></div></td>
<td bgcolor="#CCCCCC"><div align="center" class="style2"></div></td>
<td bgcolor="#CCCCCC"><div align="center" class="style2"></div></td>
<td bgcolor="#CCCCCC"><div align="center" class="style2"></div></td>
<td bgcolor="#CCCCCC"><div align="center" class="style2"><?php
                    $obtained_exam_score_query = $this->db->get_where('mark' , array(
                                                'subject_id' => $row3['subject_id'],
                                                    'exam_id' => $exam_id,
                                                        'class_id' => $class_id,
                                                            'student_id' => $student_id , 
                                                                'year' => $this->db->get_where('settings' , array('type' => 'running_year'))->row()->description
                                            ));
                    if($obtained_exam_score_query->num_rows() > 0){
                        $marks3 = $obtained_exam_score_query->result_array();
                        foreach ($marks3 as $row4) {
                            echo $row4['exam_score'];
                            $total_marks += $row4['exam_score'];
                        }
                    }
                ?></div></td>
<td bgcolor="#CCCCCC"><div align="center" class="style2"><strong></strong></div></td>

Однако мне нужно суммировать их значения в итоговом столбце. Пожалуйста помоги. заранее спасибо.

Вот мой скриншот таблицы базы данных ('mark')
Посмотреть скриншот таблицы моей базы данных

Также найдите мой код модели ниже.

function get_obtained_marks( $exam_id , $class_id , $subject_id , $student_id) {
    $marks = $this->db->get_where('mark' , array(
                                'subject_id' => $subject_id,
                                    'exam_id' => $exam_id,
                                        'class_id' => $class_id,
                                            'student_id' => $student_id))->result_array();

    foreach ($marks as $row) {
        echo $row['mark_obtained'];
    }
}

function get_obtained_second_ca( $exam_id , $class_id , $subject_id , $student_id) {
    $marks2 = $this->db->get_where('mark' , array(
                                'subject_id' => $subject_id,
                                    'exam_id' => $exam_id,
                                        'class_id' => $class_id,
                                            'student_id' => $student_id))->result_array();

    foreach ($marks2 as $row) {
        echo $row['second_ca'];
    }
}

function get_obtained_exam_score( $exam_id , $class_id , $subject_id , $student_id) {
    $marks3 = $this->db->get_where('mark' , array(
                                'subject_id' => $subject_id,
                                    'exam_id' => $exam_id,
                                        'class_id' => $class_id,
                                            'student_id' => $student_id))->result_array();

    foreach ($marks3 as $row) {
        echo $row['exam_score'];
    }

Просьба помочь с вашими решениями этой проблемы. Мне нужен запрос foreach для суммирования 'mark_obtained' + 'second_ca' + 'exam_score' в моем столбце Total.

Автор: Smith O. Источник Размещён: 09.03.2017 10:32

Ответы (1)


0 плюса

108 Репутация автора

Добавить предложение выбора в каждом запросе.

$marks3 = $this->db->select('*,(mark_obtained + second_ca + exam_score) as total')->get_where('mark', array('subject_id' =>$subject_id, 'exam_id' => $exam_id,'class_id' => $class_id,'student_id' => $student_id))->result_array();
Автор: Nitesh Gupta Размещён: 09.03.2017 11:03
Вопросы из категории :
32x32