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 codeigniter中的多对多数据库关联_Php_Codeigniter_Activerecord_Associations - Fatal编程技术网

Php codeigniter中的多对多数据库关联

Php codeigniter中的多对多数据库关联,php,codeigniter,activerecord,associations,Php,Codeigniter,Activerecord,Associations,我正在创建一种卡收集程序,使用codeigniter和ion_auth进行身份验证。用户应该能够向其收藏中添加卡片。 所以我有一个用户表、一个卡片表和一个连接/桥接表 users ID NAME 及 及 我想完成一个SELECT语句,该语句通过用户卡从用户处检索卡 $this->db->select('*'); $this->db->from('cards'); $this->db->join('users_cards', 'user

我正在创建一种卡收集程序,使用codeigniter和ion_auth进行身份验证。用户应该能够向其收藏中添加卡片。 所以我有一个用户表、一个卡片表和一个连接/桥接表

    users
    ID
    NAME

我想完成一个SELECT语句,该语句通过用户卡从用户处检索卡

$this->db->select('*');
$this->db->from('cards');
$this->db->join('users_cards', 'users.id = users_cards.user_id', 'inner');
$this->db->join('users', 'users_cards.user_id = users.id', 'inner');
$query = $this->db->get();
return $query->result_array();

我似乎无法理解这些连接的概念。有人能帮帮我吗?

看来join语句缺少对“cards”表的引用

$this->db->select('*');
$this->db->from('users_cards');
$this->db->join('users', 'users.id = users_cards.user_id', 'inner');
$this->db->join('cards', 'cards.id = users_cards.card_id', 'inner');
$query = $this->db->get();
return $query->result_array();

这个想法是,您试图通过引用用户卡和其他两个表的相关id来建立用户卡和其他两个表之间的关系

,因为您没有加入用户表,所以无法基于users.id引用加入。所以你需要改变

$this->db->join('users_cards', 'users.id = users_cards.user_id', 'inner');

$this->db->select('*');
$this->db->from('users_cards');
$this->db->join('users', 'users.id = users_cards.user_id', 'inner');
$this->db->join('cards', 'cards.id = users_cards.card_id', 'inner');
$query = $this->db->get();
return $query->result_array();
$this->db->join('users_cards', 'users.id = users_cards.user_id', 'inner');
$this->db->join('users_cards', 'cards.id = users_cards.card_id', 'inner');