2016-08-17 5 views
-1

Прежде всего я новичок здесь & извините, если этот вопрос звучит глупо, вот мой вопрос.Подключение двух таблиц с codeigniter

У меня есть две таблицы, как этого

1.jobseets

2.jobsheet_tasks

В таблице jobsheets хранит некоторую базовую информацию, как клиент, дата & в jobsheet_tasks сохраняются только задачи, связанные с каждой работой лист.

в таблице «jobsheets_tasks». Идентификатор «jobsheets», который принадлежит задаче принадлежит его хранению в справочных целях

вот мои таблицы

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 & 2 относятся к одному листу задания, в котором идентификатор листа работ составляет 61.

[правильный выход] [3]

задачи же задания листа один за другим.

, пожалуйста, помогите мне достичь этого. пожалуйста, предоставьте свои решения на уровне кода.

Спасибо.

+0

Вы можете написать свой результат работы. –

+0

@Nikunj Rathod здесь вы идете https://s3.postimg.io/w6qp101mr/image.jpg – greenarrow

+0

это выход, который я хочу https://s3.postimg.io/qb1crcbpf/image.jpg – greenarrow

ответ

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 ; 
     } 
    } 
+0

Я попробую это и дам знать спасибо. – greenarrow

+0

Ничего себе это работает и одно. в таблице задачи теперь отображаются рядом друг с другом, например task1, task2. , как я могу показать им один за другим , как это я имею в виду https://s3.postimg.io/qb1crcbpf/image.jpg – greenarrow

+0

вы можете попробовать это решение для group_contact с следующей строки и т.д .. HTTP: //stackoverflow.com/questions/8285035/group-concat-mysql-new-line –

0

В моем понимании Если запрос работает нормально, то проверьте синтаксис таблицы петли Еогеаспа ... Закройте <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 } ?> 
+0

да на данный момент запрос в порядке и в моем реальном коде не работает. – greenarrow

Смежные вопросы