Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 连接表不起作用_Php_Codeigniter - Fatal编程技术网

Php 连接表不起作用

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

我正在尝试将我的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_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;
  }
}