我遇到问题,我尝试使用$query->result_array()
上的foreach
重新命名controller
,并使用其他view
在foreach
中调用$query->result_array();
显示controller
这是我的表现。
我的logs()
:
我有这个名为$query->result_array()
的用户定义函数,我在里面有一个查询并使用foreach{}
来获取结果。然后我使用 $result = array();
foreach ($query->result_array() as $row) {
$result = array(
"id" => $row['id'],
"name" => $row['name'],
"status" => $row['status'],
"time" => $row['time']
);
}
return $result;
重命名它,如下面的代码:
filtered_logs()
然后我创建了另一个名为logs()
的用户定义函数来过滤LEFT JOIN
的结果*我过滤了它,因为我有多个表格 $filtered = array();
$logs = $this->logs();
if ($logs['status'] == "ok") {
$query = $this->db->query("SELECT * FROM table a
LEFT JOIN table b
ON a.image = b.image
LEFT JOIN ....ON...
WHERE a.id = '".$logs['id']."'");
foreach ($query->result_array() as $row){
$filtered = array(
"path" => $row['path'],
"grade" => $row['grade'],
"time" => $logs['time'],
);
}
}
。
view
将这些结果发送到index
我使用此方法,放在controller
的{{1}}上。
$data['logs'] = $this->filtered_logs();
$this->load->view('pages', $data);
然后使用以下代码在view
上显示:
<?php
foreach ($logs as $row) {
echo $row['id']." </br>";
echo $row['status']." </br>";
echo $row['time']." </br>";
}
?>
但是当我使用这种处理result_array的方式时,它会给我一个错误说&#34;非法字符串偏移&#39;&#39; &#34;
有人可以帮助我或告诉我是否有其他方式显示我的查询结果?
答案 0 :(得分:0)
这只是显示结果的另一种方式,试试吧。
<?php
foreach ($logs as $row) {
echo $row->id." </br>";
echo $row->status." </br>";
echo $row->time." </br>";
}
?>
答案 1 :(得分:0)
我猜你错过了#34; []&#34;在$ result数组之后,你为每个循环输入数据,这导致了这个错误。
应该是这样的:
$result = array();
foreach ($query->result_array() as $row) {
$result[] = array(
"id" => $row['id'],
"name" => $row['name'],
"status" => $row['status'],
"time" => $row['time']
);
}
return $result;