Php 连接表不起作用
我正在尝试将我的db查询转换为codeigniter活动记录,但似乎无法以正确的方式正确处理它 我做错了什么 模型 老路Php 连接表不起作用,php,codeigniter,Php,Codeigniter,我正在尝试将我的db查询转换为codeigniter活动记录,但似乎无法以正确的方式正确处理它 我做错了什么 模型 老路 public function getUser1($user_id) { $query = $this->db->query("SELECT *, (SELECT ug.name FROM `" . $this->db->dbprefix . "user_group` ug WHERE ug.user_group_id = u.user_g
public function getUser1($user_id) {
$query = $this->db->query("SELECT *, (SELECT ug.name FROM `" . $this->db->dbprefix . "user_group` ug WHERE
ug.user_group_id = u.user_group_id)
AS user_group FROM `" . $this->db->dbprefix .
"user` u WHERE u.user_id = '" . (int)$user_id . "'");
return $query->row_array();
}
看起来您传递了错误的join语法。请尝试以下代码
$this->db->select('user.*,user_group.name as user_group');
$this->db->from('user');
$this->db->join('user_group','user.user_group_id = user_group.user_group_id');
$this->db->where('user.user_id', $user_id);
$query = $this->db->get();
如果您对此查询仍有任何错误/问题,请告知我
希望这能对你有所帮助。也许你可以试试下面的。。 来自PHP Weblineindia的答案基本相同,但它们没有使用db前缀
$this->db->select('u.*, ug.name AS user_group');
$this->db->from($this->db->dbprefix . 'user u');
$this->db->join($this->db->dbprefix . 'user_group ug', 'ug.user_group_id = u.user_group_id');
$this->db->where('u.user_id', $user_id);
$query = $this->db->get();
未经测试的代码,仅基于我从您的问题中看到的内容。请使用此代码
public function getUser($user_id) {
$this->db->select(array('*', 'ug.user_group', 'u.user'));
$this->db->join($this->db->dbprefix .'user_group AS ug','ug.column = u.column','INNER');
//please user column similar in both tables
$this->db->from($this->db->dbprefix . 'user as u');
$this->db->where('u.user_id', $user_id);
$query = $this->db->get();
if ($query->num_rows() > 0) {
return $query->result_array();
return true;
} else {
return false;
}
}
我希望这会对您有所帮助。我尝试过,但现在“on子句”中的未知列“user\u group\u id.user\u group\u id”是您的旧模型查询工作方式吗?如果是,请确认用户和用户组表中都有用户组id。或者,您可以让我知道您要加入的两个表中的列名吗?是的,我正在工作。我不想手动在模型用户组列名用户组id、名称、权限上输入列名。我已编辑了答案,请您现在用更新的代码重试。没有任何效果。看起来我们必须坚持使用db查询
$this->db->select('u.*, ug.name AS user_group');
$this->db->from($this->db->dbprefix . 'user u');
$this->db->join($this->db->dbprefix . 'user_group ug', 'ug.user_group_id = u.user_group_id');
$this->db->where('u.user_id', $user_id);
$query = $this->db->get();
public function getUser($user_id) {
$this->db->select(array('*', 'ug.user_group', 'u.user'));
$this->db->join($this->db->dbprefix .'user_group AS ug','ug.column = u.column','INNER');
//please user column similar in both tables
$this->db->from($this->db->dbprefix . 'user as u');
$this->db->where('u.user_id', $user_id);
$query = $this->db->get();
if ($query->num_rows() > 0) {
return $query->result_array();
return true;
} else {
return false;
}
}