尝试从 codeigniter 代码中的 2 个表中获取值

Posted

技术标签:

【中文标题】尝试从 codeigniter 代码中的 2 个表中获取值【英文标题】:Trying to fetch the value from 2 tables in codeigniter code 【发布时间】:2021-01-03 11:40:59 【问题描述】:

在 2 张桌子上工作(家庭作业和交付)。我能够从交付表中获取“homework_code”的值。现在 Homework 表中也有相同的字段,没有主键。 我正在尝试从表“作业”中获取“标题”字段的值。两个表都有共同的 student_id 值。代码是:

<?php
$invoices = $this->db->get_where('deliveries', array('student_id' => $row['student_id']))->result_array();
foreach($invoices as $row2): ?>
<tr>
<td>
<?php echo $row2['homework_code'];?>
</td>
<td>
<?php echo $this->db->get_where('homework' , array('homework_code'=>'class_id'))->row()->title; ?>&nbsp;&nbsp;<?php echo $row2['title'];?>
     </td> 
</tr>
<?php endforeach;?>

【问题讨论】:

【参考方案1】:

从上面的你的问题中,如果你的数据库结构是这样的,那么使用:-

家庭作业表:-

title
student_id

交货表:-

homework_code  
student_id 

然后改变这个:-

<td>
<?php echo $this->db->get_where('homework' , array('homework_code'=>'class_id'))->row()->title; ?>&nbsp;&nbsp;<?php echo $row2['title'];?>
</td>

到这里:-

<td>
<?php
$student_id = $row2['student_id'];
$homework = $this->db->get_where('homework',array('student_id'=>$student_id))->result_array(); 
echo $homework['title'];
?>
</td>

【讨论】:

【参考方案2】:

根据您上面的代码,您可以像这样使用控制器

public function get()
    
        $data = $this->db->get_where('deliveries', array('student_id' => $row['student_id']))->result_array();
        $fetch['fetchdata'] = $this->db->get_where('homework', array($data[0]['homework_code'] => 'class_id'))->result_array();

        $this->load->view('yourview', $fetch);
    

并通过将其放在 View 上来输出:

<?= $fetchdata[0][title] ?>

但是 result_array() 函数会为结果生成数组,即使它只有一个

【讨论】:

以上是关于尝试从 codeigniter 代码中的 2 个表中获取值的主要内容,如果未能解决你的问题,请参考以下文章

使用 Codeigniter 生成带有 2 个表的 CSV

PHP Codeigniter MySQL 查询 - 将 4 个表连接在一起,其中 3 个表使用每个表中的一列分组

我是 codeigniter 的新手,我正在尝试加入 3 个表,但它给出了一些问题

使用Codeigniter生成包含2个表的CSV

使用 CodeIgniter 中的 Active Record 类从 4 个表中选择数据

根据codeigniter中的外键从两个表中获取json编码数据