我有以下foreach循环,它给出了无效的参数错误:
$all_students = $this -> model_accounts -> get_students_on_account($account['account_id']);
foreach ($all_students as $student)
{
...
}
我尝试使用print_r进行调试以检查$ all_students数组的样子,结果得到了这个结果:
Array
(
[0] => Array
(
[id] => 00062
[student_name] => Reckless
[student_surname] => Harmse
[acc_id] => 198
[dob] => 07-07-1993
[gender] => Male
[active] => 1
[has_pic] => 1
[avatar] => 106.jpg
[pic_ver] => 1
[student_identity_num] => 9307075052084
)
)
所以数组就在那里,如print_r细节所示,它被视为一个数组。
我已经查看了其他类似的问题,但没有一个可以提供帮助。
提前完成
添加了: 模型功能用于吸引学生
function get_students_on_account($account_id)
{
$data = '';
$this->db->where('acc_id', $account_id);
$q = $this->db->get('students');
if ($q->num_rows() > 0)
{
foreach ($q->result_array() as $row)
{
$row['dob'] = $this -> change_date_format($row['dob']);
$data[] = $row;
}
}
return $data;
}
答案 0 :(得分:2)
在你的函数 get_students_on_account 中,替换为:
$data = '';
由此:
$data = array();
这是持续返回数组所必需的。你不想要返回一个字符串。如果是这样,您所描述的问题就会发生。
答案 1 :(得分:1)
试试这个
$res = $q->result_array();
foreach ($res as &$row)
{
$row['dob'] = $this -> change_date_format($row['dob']);
}
return $res;
答案 2 :(得分:0)
试试这个
在控制器中
$all_students = $this->model_accounts->get_students_on_account($account['account_id']);
if($all_students == false){
echo "Empty result";
}
else{
foreach ($all_students[0] as $student)
{
...
}
}
在模型中
function get_students_on_account($account_id)
{
$query = $this->db->query("SELECT * FROM students WHERE acc_id = $account_id");
$result = $query->result_array();
$count = count($result);
if (empty($count)) {
return false;
}
else{
return $result;
}
}