Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.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

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活动记录-查询3个表_Php_Codeigniter - Fatal编程技术网

Php Codeigniter活动记录-查询3个表

Php Codeigniter活动记录-查询3个表,php,codeigniter,Php,Codeigniter,我需要使用3个表进行查询,我遇到了一些问题。 我的项目中有3个表: 项目、项目和类别 计划 id_项目 标题 日期 项目类别 id_proj_cat id_项目 身份证类别 类别 身份证类别 名称 我已经做了一个连接查询,但结果是一个具有相同项目id的数组多次显示。 我需要的是一个更高效的查询,可以为每个项目列出一个数组,其中包含它的类别和名称。差不多吧 我可以做一个单独的查询,但我试图在一个查询中实现这一点。试试这个 $this->db->from("projects p"

我需要使用3个表进行查询,我遇到了一些问题。 我的项目中有3个表:

项目、项目和类别

计划

id_项目 标题 日期 项目类别

id_proj_cat id_项目 身份证类别 类别

身份证类别 名称 我已经做了一个连接查询,但结果是一个具有相同项目id的数组多次显示。 我需要的是一个更高效的查询,可以为每个项目列出一个数组,其中包含它的类别和名称。差不多吧

我可以做一个单独的查询,但我试图在一个查询中实现这一点。

试试这个

    $this->db->from("projects p");
    $this->db->select("p.id_project,c.categories,c.name");
    $this->db->join("projects_categories pc","pc.id_project = p.id_project","LEFT");
    $this->db->join("categories c","c.id_category = pc.id_category","LEFT");
    $result=$this->db->get()->result_array();
现在$result就是您的数组。

试试这个:

$this->db->select('p.id_project,c.categories,c.name');
$this->db->from('projects p');
$this->db->join("projects_categories pc","p.id_project = pc.id_project","INNER");
$this->db->join("categories c","pc.id_category = c.id_category","INNER");
$query = $this->db->get();
return $query->result_array();

这是一个简单的连接查询。您尝试了什么?是的,我有一个长数组,同一个项目出现了好几次。我需要的是每个项目数组中的数组列表。我可以做一个单独的查询。。。但我试图通过一个简单的查询来实现这一点。你的问题不清楚你在寻找什么。请在你的问题中显示你想要的数组结构。你好,杰克·斯派洛船长,结构是这样的:数组[0]=>数组[id\U projecto]=>29[Titolo]=>Titolo 1[data]=>2012-12-12[0]=>数组[0]=>数组[id\U categoria]=>2[nome\U categoria]=>Arquitectura[1]=>数组[id\U categoria]=>3[nome\U categoria]=>Reabilitaçço[1]=>Array[idçu projecto]=>30[Titolo]=>Titolo 2[data]=>2021-09-12[0]=>Array[0]=>Array[idçu Categia]=>3[nomeçu Categia]=>Reabilitaço[1]=>Array[idçu Categia]=>4[nomeçu Categia]=>[0]=>数组[id\U projecto]=>29[titulo]=>titulo 1[data]=>2012-12-12[id\U categoria]=>2[nome\u categoria]=>Arquitectura[1]=>Arquitectura[id\U projecto]=>29[titulo]=>titulo 1[data]=>2012-12-12[id\U categoria]=>3[nome\U categoria]=>3[2]=>数组[id\U projecto]=>30[titulo]=>2021[data]>[id\U categoria]=>4[nome\U categoria]=>Design[3]=>Array[id\U projecto]=>30[titulo]=>titulo 2[data]=>2021-09-12[id\U categoria]=>3[nome\U categoria]=>Reabilitaçãoi如果您的projects_categories表包含与所有id_项目的关系,并且如果每个id_类别都有名称,那么您可以使用内部联接。只需将单词left替换为Inner。否则,请在select语句中选择不同的id_项目。例如$this->db->selectDISTINCTp.id_项目,c.categories,c.name;