Cyb*_*kie 2 php mysql codeigniter
在Model类中,我return $query->row();用来返回单行和return $query->result();返回多行时.
在单个页面上,我必须从2个单独的表中返回单行和多行.
表users包含一般信息,如用户名,全名和电子邮件地址.表user_links包含相应用户提交的链接,每个用户有多行.
我的查询
$this->db->select('*');
$this->db->from('users');
$this->db->join('user_links', "user_links.user_id = users.user_id");
$this->db->where('users.user_id', $user_id);
$this->db->where('user_links.user_id', $user_id);
$query = $this->db->get();
return $query->row();
Run Code Online (Sandbox Code Playgroud)
在我的控制器中,我在我的视图中加载查询
$data['row'] = $this->User_model->user_read($user_id);,
$user_id 是包含唯一用户ID的第3个URL段.
最后,在我的视图中,我检索行 echo $row->first_name;
这适用于单行,但如何foreach为用户链接创建循环?目标是避免单行循环,并仅将其用于检索多行.
这是伪代码,但你可以做这样的事情
$this->db->select('*');
$this->db->from('users');
$this->db->join('user_links', "user_links.user_id = users.user_id");
$this->db->where('users.user_id', $user_id);
$this->db->where('user_links.user_id', $user_id);
$query = $this->db->get();
if ($query->num_rows() == 1)
{
return $query->row();
}
elseif ($query->num_rows() > 1)
{
return $query->result_array(); //This returns an array of results which you can whatever you need with it
}
else
{
//Add some logic to handle if there are zero results
}
Run Code Online (Sandbox Code Playgroud)