使用codeigniter连接两个表

时间:2016-08-17 04:46:14

标签: php mysql codeigniter

首先,我是新来的&抱歉,如果这个问题听起来很愚蠢,这就是我的问题。

我有两张这样的表

1.jobseets

2.jobsheet_tasks

表工作表存储了一些基本信息,如客户,日期和工作表。 jobsheet_tasks仅存储与每个工作表相关的任务。

on" jobsheets_tasks"表。 " jobsheets"的ID属于任务所属的存储用于参考目的

这是我的表格

tabels

在工作表下可以再增加一项任务。

Relation

为了获取两个表中的信息,我编写了以下查询。

public function get_jobsheets() {
$this->db->select('jobsheets.id, jobsheets.vehicle_number, jobsheets_tasks.task');  
$this->db->from('jobsheets');
$this->db->join('jobsheets_tasks', 'jobsheets_tasks.jobsheet_id = jobsheets.id');

$query = $this->db->get();


if($query->num_rows() > 0) {

  foreach ($query->result()as $row){

   $data[] = $row;

  }
return $data ;
  }


} 

我在这个视图中显示数据。

<?php 
foreach($result as $jobsheet)  {

  ?>
        <tr>
          <td><?php echo  $customer->id;?></td>
          <td><?php echo  $customer->vehicle_number;?></td>
          <td><?php echo  $customer->task;?></td>
 <?php } ?>  

,输出就像这样

[输出错误] [3]

查询有效,但正如你在上面的图片中看到的那样,任务名为1&amp; 2属于工作单ID为61的一个工作单。

在视图中,任务属于显示为单独行的相同工作表,我想显示这样的数据。

[正确输出] [3]

相同工作表的任务一个接一个。

请协助我实现这一目标。请在代码级别提供您的解决方案。

感谢。

2 个答案:

答案 0 :(得分:0)

作为我的理解如果您的查询工作正常,请检查foreach循环表的语法...关闭<tr>标记

<?php 
foreach($result as $jobsheet)  {
 ?>
        <tr>
          <td><?php echo  $customer->id;?></td>
          <td><?php echo  $customer->vehicle_number;?></td>
          <td><?php echo  $customer->task;?></td></tr>
 <?php } ?> 

答案 1 :(得分:0)

您可以在控制器中试用此功能.....

  public function get_jobsheets() {
      $this->db->select('jobsheets.id, jobsheets.vehicle_number, GROUP_CONCAT(jobsheets_tasks.task) as task');  
      $this->db->from('jobsheets');
      $this->db->join('jobsheets_tasks', 'jobsheets_tasks.jobsheet_id = jobsheets.id');
      $this->db->group_by('jobsheets.id, jobsheets.vehicle_number'); 
      $this->db->order_by('jobsheets.id', 'desc');
      $query = $this->db->get();
      if($query->num_rows() > 0) {
          foreach ($query->result()as $row){
              $data[] = $row;
          }
          return $data ;
      }
  }