gpt4 book ai didi

php - 如何查找另一个表中不存在的数据 CodeIgniter

转载 作者:行者123 更新时间:2023-11-29 16:06:05 27 4
gpt4 key购买 nike

我想从 CI 中使用 foreach 方法从与另一个表相关的表列之一获取数据,所以这里的左边工作人员 表,右侧contrib 表(用“/”分隔):

+====+======+===+====+=========+
| id | name | / | id | crew_id |
+====+======+===+====+=========+
| 1 | John | / | 1 | 1 |
+----+------+---+----+---------+
| 2 | Jane | / | 2 | 1 |
+----+------+---+----+---------+
| 3 | Jody | / | 3 | 2 |
+----+------+---+----+---------+

在模型taskmodel上我尝试过:

public function list_contrib(){
$this->db->select('contrib.*, crew.name');
$this->db->from('contrib');
$this->db->join('crew', 'contrib.crew_id = crew.id' 'inner);
$query = $this->db->get();
return $query->result();
}

public function crew_list(){
$this->db->select('*');
$this->db->from('crew');
$query = $this->db->get();
return $query->result();
}

在 Controller 上:

 public function add_task(){

$this->load->model('taskmodel');

$data['crews'] = $this->taskmodel->crew_list();
$data['contrib'] = $this->taskmodel->list_contrib();

$this->load->view('add_task', $data);
}

关于 View :

<?php foreach($contrib as $cont): ?>
<select>
<?php foreach($crews as $crew):
if($crew->id != $cont->crew_id ) { ?>
<option value="<?php $crew->id ?>"><?php echo $crew->name ?></option>
<?php } endforeach; ?>
</select>
<?php endforeach; ?>

它将Jane保留在我的选择选项中。我预计只有 Jody 显示在我的选择选项中,因为 JohnJane 的 ID 存在于 contrib 表中。抱歉英语不好。有什么想法吗?

最佳答案

因为你使用了内连接。尝试使用左连接或右连接

public function list_contrib(){
$this->db->select('contrib.*, crew.name');
$this->db->from('contrib');
$this->db->join('crew', 'contrib.crew_id = crew.id', 'left');
$query = $this->db->get();
return $query->result();
}

关于php - 如何查找另一个表中不存在的数据 CodeIgniter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55737702/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com