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
Codeigniter 复合连接编码点火器_Codeigniter_Join - Fatal编程技术网

Codeigniter 复合连接编码点火器

Codeigniter 复合连接编码点火器,codeigniter,join,Codeigniter,Join,我希望你能帮助我,因为我的大脑正在流血: 具体说明: 在我的网站上,我有一张桌子。对是两张图片之间的投票 该表包含2个字段:id_pic1用于第一个pic,而id_pic2用于第二个pic 每个VS都链接到一个评论表(id\u vs)和一个用户表(id\u vs) 最后一件事是:每个对上的图片都链接到一个表格投票(id\u图片,id\u对) 我以前使用cakePhP,所以contain使查询变得简单,但是现在,使用CI,我的大脑被冻结了 如果有人能在我应该提出的一般问题上提供线索,我会感激生活

我希望你能帮助我,因为我的大脑正在流血:

具体说明:

在我的网站上,我有一张桌子。对是两张图片之间的投票

该表包含2个字段:id_pic1用于第一个pic,而id_pic2用于第二个pic

每个VS都链接到一个评论表(id\u vs)和一个用户表(id\u vs

最后一件事是:每个对上的图片都链接到一个表格投票(id\u图片,id\u对)

我以前使用cakePhP,所以contain使查询变得简单,但是现在,使用CI,我的大脑被冻结了

如果有人能在我应该提出的一般问题上提供线索,我会感激生活

提前谢谢

编辑: 以下是db的简化视图:

id_pic1 id_pic2 身份证作者

用户 身份证

图片 身份证

评论 身份证对 身份证作者

投票 身份证对
id_pic

这是在CI中进行多个联接的方式,请根据此

       $this->db->select('aw.id,awt.title,aw.price,aw.email,aw.is_shop as star_shop,aw.video');
        $this->db->from('artworks aw');
        $this->db->join('artwork_translations awt', 'aw.id = awt.artwork_id');
        $this->db->join('languages l', 'l.id = awt.language_id');
        $this->db->where('l.code', $language_code);
        $this->db->where('awt.status', 1);
        $this->db->where('aw.artist_id', $artist_id);
        $this->db->order_by('aw.id DESC');

        $sub_categories = $this->db->get();

        return $sub_categories->result();

您的表格布局似乎不完整或缺少信息。
这些表是如何相互连接的

另外,您试图选择哪些数据以及使用哪些参数?
用户的作者是否也是可以在用户表中找到的用户

是否要选择一个vs(参数=id\u vs)并从中选择所有数据

function showDataFromVersus($versusToShow) {
    $this->db->select('*');                                  // select all data
    $this->db->from('versus');                               // get data from table versus
    $this->db->join('pics', 'pics.id = versus.id_pic1');     // get data pic2
    $this->db->join('pics', 'pics.id = versus.id.pic2');     // get data pic1
    $this->db->join('users', 'users.id = versus.id_author'); // get data versus author
    $this->db->join('comments', 'comments.id_versus = versus.id');  // select comments
    $this->db->join('users', 'users.id = comments.id_author');  // get data comment author
    $this->db->join('vote', 'vote.id_versus = versus.id');   // get votes
    $this->db->where('versus.id', $versusToShow);
}
此函数接受VS id并返回链接到它的所有数据

对此的MySQL查询将是

SELECT *
    FROM versus
        JOIN pics ON pics.id = versus.id_pic1
        JOIN pics ON pics.id = versus.id_pic2
        JOIN users ON users.id = versus.id_author
        JOIN comments ON comment.id_versus = versus.id
        JOIN users ON users.id = comments.id_author
        JOIN vote ON vote.id_versus = versus.id
    WHERE versus.id = 1
结果将包含许多列,我还没有测试CodeIgniter是否可以使用双列名。
还有相当多的“双”行。对于每一条评论和每一次投票,都会有一行数据相同的行

| ------------- VERSUS --------------| - PIC1 - | - PIC2 - | - USERS - | --------- COMMENT --------- | ------ VOTE ------ |
| id | id_pic1 | id_pic2 | id_author | id | ... | id | ... | id | .... | id_versus | id_author | ... | id_versus | id_pic |

您想向DB“询问”什么?这是mysql?我想要一个对象,它包含$VS->comments、$VS->pic1、$VS->pic2等等。。。所有和我有关的人。我知道这只是一个大查询,使用cakePhP,contain帮助了很多(因为他的递归性有限),但在CI中,我必须说我不知道如何写下它。