无法通过join with where子句获取记录

时间:2018-04-17 13:55:39

标签: php mysql codeigniter join

我有2张桌子。第一位用户第二篇文章没有where子句我得到了所有用户帖子,但我想只显示登录的用户数据。这是我的表的表结构。两个表都有user.id = post.user_id

的共同值
First Table User            Second Table Post
ID                           id
NAME                         user_id
Username                     category_id
Password                     user_id
                             title
                             body

我的查询获取所有记录但未记录用户记录

public function get_posts(){
  $this->db->order_by('posts.id', 'DESC');
  $this->db->join('categories', 'categories.id = posts.category_id');
  $query = $this->db->get('posts');
  return $query->result_array();
}

3 个答案:

答案 0 :(得分:3)

希望这会对您有所帮助:

此处$user_id已登录用户id应从控制器传递给模型

public function get_posts($user_id)
{
   $this->db->select('*');
   $this->db->from('posts');
   $this->db->order_by('posts.id', 'DESC');
   $this->db->join('users', 'users.id= posts.user_id');
   $this->db->where('users.id',$user_id);
   $query = $this->db->get();
   return $query->result_array();
}

答案 1 :(得分:0)

试试这个,

public function get_posts()
{
    $this->db->select('*');
    $this->db->from('posts');
    $this->db->join('users', 'users.id = posts.user_id');
    $this->db->join('categories', 'categories.id = posts.category_id');
    $this->db->order_by('posts.id', 'DESC');
    $query = $this->db->get();
    return $query->result_array();
}

答案 2 :(得分:0)

您可以像这样使用它,只需将$ user_id变量替换为您的动态用户ID值

add_lines(x= ~label1, y= fitted(fit1), name = "",
          line = list(color= c_yellow2, widthh=0.5, dash="dot"))

希望这会对你有帮助....