从数据库中获取 codeigniter 中 id=$id 的所有行
Get all rows form database where id=$id in codeigniter
这是我的代码
$this -> db -> select('*');
$this -> db -> from('events');
$this -> db -> where('user_id',$session_data['id']);
$query = $this -> db -> get();
$result = $query->result();
if($result)
{
$events_array = array();
foreach($result as $row)
{
$events_array = array(
'id' => $row->id,
'title' => $row->title,
'ev_img_name' => $row->ev_img_name,
);
$this->session->set_userdata('events',$events_array);
}
$session_data = $this->session->userdata('events');
$id = $this->session->userdata('id');
$data['id'] = $id;
$data['id'] = $session_data['id'];
$title = $this->session->userdata('title');
$data['title'] = $title;
$data['title'] = $session_data['title'];
$ev_img_name = $this->session->userdata('ev_img_name');
$data['ev_img_name'] = $ev_img_name;
$data['ev_img_name'] = $session_data['ev_img_name'];
它只获取 table 的第一行,但我需要获取具有相同 user_id 的所有行。我怎样才能做到这一点。提前致谢。
在 foreach 中,您将值重新分配给同一个数组。
尝试使用
$events_array = array();
foreach($result as $row)
{
$events_array[] = array(
'id' => $row->id,
'title' => $row->title,
'ev_img_name' => $row->ev_img_name,
);
}
$this->session->set_userdata('events',$events_array);
这样,您将在 $events_array
.
中获得返回结果中的所有行
现在在你看来你可以做到这一点
<?php foreach($events_array as $event) { ?>
<div class="event">
Title: <?= $event['title'] ?>
Image: <br>
<img src="<?= $event['ev_img_name'] ?>">
</div>
<?php } ?>
试试这个代码,
您可以直接从 codeigniter sql 查询中以数组格式直接获取任何您想要的数据(字段数),然后将该数组直接设置为会话作为事件,如下所示,
$this->db->select('id,title,ev_img_name');
$this->db->from('events');
$this->db->where('user_id',$session_data['id']);
$result = $this->db->get()->result_array();
if(count($result)>0){
$this->session->set_userdata('events',$result);
}
这是我的代码
$this -> db -> select('*');
$this -> db -> from('events');
$this -> db -> where('user_id',$session_data['id']);
$query = $this -> db -> get();
$result = $query->result();
if($result)
{
$events_array = array();
foreach($result as $row)
{
$events_array = array(
'id' => $row->id,
'title' => $row->title,
'ev_img_name' => $row->ev_img_name,
);
$this->session->set_userdata('events',$events_array);
}
$session_data = $this->session->userdata('events');
$id = $this->session->userdata('id');
$data['id'] = $id;
$data['id'] = $session_data['id'];
$title = $this->session->userdata('title');
$data['title'] = $title;
$data['title'] = $session_data['title'];
$ev_img_name = $this->session->userdata('ev_img_name');
$data['ev_img_name'] = $ev_img_name;
$data['ev_img_name'] = $session_data['ev_img_name'];
它只获取 table 的第一行,但我需要获取具有相同 user_id 的所有行。我怎样才能做到这一点。提前致谢。
在 foreach 中,您将值重新分配给同一个数组。 尝试使用
$events_array = array();
foreach($result as $row)
{
$events_array[] = array(
'id' => $row->id,
'title' => $row->title,
'ev_img_name' => $row->ev_img_name,
);
}
$this->session->set_userdata('events',$events_array);
这样,您将在 $events_array
.
现在在你看来你可以做到这一点
<?php foreach($events_array as $event) { ?>
<div class="event">
Title: <?= $event['title'] ?>
Image: <br>
<img src="<?= $event['ev_img_name'] ?>">
</div>
<?php } ?>
试试这个代码, 您可以直接从 codeigniter sql 查询中以数组格式直接获取任何您想要的数据(字段数),然后将该数组直接设置为会话作为事件,如下所示,
$this->db->select('id,title,ev_img_name');
$this->db->from('events');
$this->db->where('user_id',$session_data['id']);
$result = $this->db->get()->result_array();
if(count($result)>0){
$this->session->set_userdata('events',$result);
}