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
Database Codeigniter联接重复返回的值_Database_Codeigniter_Join - Fatal编程技术网

Database Codeigniter联接重复返回的值

Database Codeigniter联接重复返回的值,database,codeigniter,join,Database,Codeigniter,Join,好的,首先,如果这是一个愚蠢的问题,很抱歉,但我是一个真正的初学者 我有3个数据库表、视频、事件和用户 我的问题是,如果我联接这3个表,并在视图中显示结果,则结果会重复 例如,如果我在我的个人资料中回显用户名,我上传了7个视频,它会显示用户名7次 function get_profile($id) { $this->db->select('*'); $this->db->from('pf_users'); $thi

好的,首先,如果这是一个愚蠢的问题,很抱歉,但我是一个真正的初学者

我有3个数据库表、视频、事件和用户

我的问题是,如果我联接这3个表,并在视图中显示结果,则结果会重复

例如,如果我在我的个人资料中回显用户名,我上传了7个视频,它会显示用户名7次

function get_profile($id) 
    {
        $this->db->select('*');
        $this->db->from('pf_users');
        $this->db->join('pf_videos', 'pf_videos.uid = pf_users.uid');
        $this->db->join('pf_events', 'pf_events.uid = pf_users.uid');
        $this->db->where('pf_users.uid', $id);
        $q = $this->db->get();
        if($q->num_rows() > 0)
        {
            foreach($q->result() as $row)
            {
                $data[] = $row;
            }

            return $data;
        }   
            else 
        {
            show_404();
        }

}
我甚至重复菜单

<ul class="profile_menu">
        <?php foreach ($results as $res): ?>
            <li><a href="#" class="profile_info">Információ</a></li>
            <li><a href="#" class="profile_event">Eseményei (<?php echo count($res->title) ?>)</a></li>
            <li><a href="#" class="profile_photos">Party képei (0)</a></li>
            <li><a href="#" class="profile_video">Videói (<?php echo count($res->url); ?></a></li>
        <?php endforeach; ?>
有人能指出我遗漏了什么吗?抱歉,如果这是个愚蠢的问题

多谢各位

由于缺少group by语句,您将有重复的内容是正常的。在您的情况下,您需要添加:

$this->db->group_by("pf_users.uid");
现在你有了联合pf_视频和pf_事件,正常的情况是有重复的内容,因为你有关于pf_事件和pf_视频的信息。如果您不需要这两种信息,那么一个简单的DISTINCT将为您完成这项工作,因此您只需

 $this->db->select('DISTINCT pf_users.*',false);
不使用group_by语句。要了解有关DISTINCT和GROUP BY的更多信息,只需阅读以下链接:


我觉得自己有点愚蠢,因为我在问题上花了很多时间,帮我解决了这个问题。我不觉得自己愚蠢。每个人都有过一次。对我来说,没有愚蠢的问题。只有“不完整”的问题。因此,当你的问题被正确地问到所有需要的信息时,这是可以的