Эта функция мой контроллерполучаю ошибку при прохождении массива через петлю
public function update_monthly() {
$data = $this->student_model->get_due_info();
foreach ($data as $value) {
$due = $this->student_model->get_due_by_id($value);
$grade = $this->student_model->get_grade_by_id($value);
$grade_due = $this->student_model->get_due_by_grade($grade);
$new_due = $due + $grade_due;
$this->db->set('md_due',$new_due, FALSE);
}
}
Я получаю следующее сообщение об ошибке
A PHP Error was encountered
Severity: Notice
Message: Array to string conversion
Filename: database/DB_active_rec.php
Line Number: 427
и
A Database Error Occurred
Error Number: 1054
Unknown column 'Array' in 'where clause'
SELECT `md_due` FROM (`monthly_due`) WHERE `md_student_id` = Array
Filename: F:\xampp\htdocs\student\system\database\DB_driver.php
Line Number: 330
Код модели
public function get_due_by_id($id) {
$this->db->select('md_due');
$this->db->from('monthly_due');
$this->db->where('md_student_id', $id);
$query = $this->db->get();
return $query->result_array();
}
public function get_due_by_grade($id) {
$this->db->select('dt_fee');
$this->db->from('due_table');
$this->db->where('dt_grade', $id);
$query = $this->db->get();
return $query->result_array();
}
public function get_grade_by_id($id) {
$this->db->select('grade');
$this->db->from('student_info');
$this->db->where('student_gen_id', $id);
$query = $this->db->get();
return $query->result_array();
}
public function get_due_info() {
$this->db->select('md_student_id');
$this->db->from('monthly_due');
$query = $this->db->get();
return $query->result_array();
}
Поскольку CI Active Record возвращает ассоциативный массив, пожалуйста, измените '$ из-за = $ this-> student_model-> get_due_by_id ($ значение);' до $ из-за = '$ this-> student_model-> get_due_by_id ($ значение [ ARRAY_INDEX | COLUMN NAME]); ' –
Можете ли вы вставить здесь код модели? – mrsrinivas
Это происходит потому, что вам нужно передать идентификатор для вашей модели get_due_by_id function.If вы возвращаете объект массива используйте get_due_by_id ($ значения [ «id_col_name»]) или если вы возвращаете объект StdClass затем использовать get_due_by_id ($ значения -> id_col_name) Не стесняйтесь, дайте мне знать, если есть сомнения. – Zeeshan