Codeigniter 加入多个 id 并显示到视图

Posted

技术标签:

【中文标题】Codeigniter 加入多个 id 并显示到视图【英文标题】:Codeigniter joining multiple ids and displaying to a view 【发布时间】:2014-08-20 13:49:14 【问题描述】:

我遇到了一些问题,希望能得到你们的帮助。我正在构建一个奇幻游戏,其中我有具有以下结构的奇幻团队表,每个玩家都将使用从玩家表生成的唯一 ID 保存。这是我的玩家表

playerID  | playerName       | teamID  | value | point
13          peter Cech            2         8       0
15          Fernando Torres       2         9       0

这是我的 Fantasyteam 表

teamID |  fantasyteam     | userID | GK1 | GK2 | DEF1 | DEF2 | MID1 | MID2 | FWD1 | FWD2
95        Washindi FC          1      13     2     3       6      7     12      15    18

我想要实现的是将fantansyteam 表与玩家表连接起来,其中的键将是幻想团队表中玩家的 ID。这是我的模型:-

            function get_fantansy_team($userID)
            $where=array(
            'userID'=>$userID,

            );
            $this->db->select();
            $this->db->from('fantansyteams AS FT');
            $this->db->join('player AS P1', 'FT.GK2= P1.playerID');
            $this->db->join('player AS P2', 'FT.GK1= P2.playerID','left outer');
            $this->db->where('FT.userID', $userID);
            $query = $this->db->get();
            return $query->result_array();


            

这是我的控制器:-

public function user($userID)
   
     $this->load->model('team_model');
     $data['myteam']=$this->team_model->get_fantansy_team($userID);
         $this->load->view('myteam_view',$data);    
       

这是我的看法:-

     <?php  echo   "<pre>" ;print_r($myteam);echo "</pre>" ;?>
    <?php foreach($myteam as $player):
        echo $player['GK1'] ;
        echo $player['playerName'] ;
    endforeach;?>

有人可以帮助我如何在我的视图中使用playerName 和其他字段显示用户团队吗?

【问题讨论】:

你可能的结果/结果应该是什么? @Nil'z,我已经编辑了代码,现在添加了控制器和视图代码。但我认为实际问题出在模型中,因为在我看来,如果我回显 playerName,它只会显示 GK1 名称。我的问题是如何使用连接查询数据库,以便显示每个玩家的姓名。再次感谢您的帮助:-) 【参考方案1】:

你可以试试这个,看看你得到了什么:

function get_fantansy_team($userID)
    $where=array(
        'userID'=>$userID,
    );
    $this->db->select('P1.playerName, P2.playerName, FT.fantasyteam');
    $this->db->from('fantasyteam AS FT'); //corrected table name
    $this->db->join('player AS P1', 'FT.GK2= P1.playerID');
    $this->db->join('player AS P2', 'FT.GK1= P2.playerID','left outer');
    $this->db->where('FT.userID', $userID);
    $query = $this->db->get();
    return $query->result_array();

【讨论】:

非常感谢 Nilz,我认为很接近,我在“字段列表”中有此错误未知列“FT.fantansyteams”,但是当我删除 FT.fantasyteam 时,仅返回第一个玩家。请你能帮我看看如何在我的视图上显示每个玩家的名字。再次感谢:-) 你的表名是fantansyteams / fantansyteam 吗? 您在模型fantansyteams中拼错了表名

以上是关于Codeigniter 加入多个 id 并显示到视图的主要内容,如果未能解决你的问题,请参考以下文章

Codeigniter 加入多个条件

codeigniter foreach 具有相同 ID 的多个条目,对元素求和并显示为一个

加入多个表并显示从 id 链接的所有名称

codeigniter 加入多对多限制

Codeigniter加入点击

无法使用 jquery 和 ajax 删除多个用户(codeigniter 3)