php - Codeigniter 多对多错误

标签 php mysql codeigniter join relational-database

我有 3 个表 ...

教师、类(class)和instructor_teach

我想显示教师教授的类(class)列表

我一直在使用教程之类的东西来尝试解决这个问题,所以如果我的代码很乱,我深表歉意。

模型...

function getMemberPrograms($id){
    $this->db->select('*');
    $this->db->from('instructor_teach');
    $this->db->join('instructor_teach', 'instructors.id = instructor_teach.instructor_id');
    $this->db->join('classes', 'instructor_teach.program_id = classes.id');
    $this->db->where('instructor_teach.instructors_id', $id);
    return;
}

在 Controller 中,我只有一个 print_r 语句来查看结果是什么,但目前我得到了

Error Number: 1066

Table/alias: 'instructor_teach' non unique

SELECT * FROM (`instructor_teach`, `classes`) JOIN `instructor_teach`
ON `instructors`.`id` = `instructor_teach`.`instructor_id` JOIN
`classes` ON `instructor_teach`.`program_id` = `classes`.`id` WHERE
`instructor_teach`.`instructors_id` = '1'

Filename: C:/wamp/www/fitness/application/models/members_model.php

Line Number: 16

我想要的是一个数组,其中包含讲师所教类(class)的所有信息

老师1教1类,2类

数组会返回

类 1.name 类 1.描述

类 2.name 类2.描述

等..

我希望这是有道理的,因为我还在接受这个

非常感谢 乔

最佳答案

我认为您正在将表 instructor_teach 加入到它自己 instructor_teach

看看:

$this->db->from('instructor_teach');
$this->db->join('instructor_teach', 'instructors.id = instructor_teach.instructor_id');

我认为应该是:

$this->db->from('instructor_teach');
$this->db->join('instructors', 'instructors.id = instructor_teach.instructor_id');

:)

关于php - Codeigniter 多对多错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30208774/

相关文章:

php - 在查询 MySQL 中进行多个连接

php - Zend Framework 2 - 如何从库中包含部分内容

mysql - 如何将别名字段与日期范围相加

javascript - 使用 Ajax 将变量发布到 PHP 文件以从 Mysql 中删除一行 - 不起作用

php - codeigniter $this->db->where();自定义字符串问题

php - 如何从base64数据保存jpg文件

php - 将 php 项目从 fedora 移动到 windows wamp 错误

php - 在 php mysql 中从另一个 View 创建 View

php - mysql保存用户名字符串类似时间戳的数据类型

php - 如何使用 codeigniter 在 css 文件中设置 base_url(),以访问 css 文件中的 background_image_url?