2016-08-17 8 views
-1

まず最初に私はここに新しいです&申し訳ありません、この質問が愚かに聞こえる場合は、ここに私の質問です。codeigniterで2つのテーブルを接続する

私は

2.jobsheet_tasks

テーブルjobsheets店の顧客のようないくつかの基本的な情報この

1.jobseetsのような2つのテーブルを持って、日付& jobsheet_tasksは、各ジョブに関連するタスクを保存しますシート。

"jobsheets_tasks"テーブル。タスクの所属する「jobsheets」のIDは、それがここで参考のため

のために保存している属するジョブのシートの下に1つのより多くのタスクが存在することができ、私のテーブル

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という名前のタスクを見ることができるようなものですジョブシートIDが61である1つのジョブシートに属しています。

ビューでは、タスクは別々の行として表示されている同じジョブシートに属しています。

[正しい出力]同じジョブのシート次々の[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

これはうまく動作しています。タスク1、タスク2のように互いの隣に表示されているタスクをテーブルに表示します。あなたは のhttp ...などの次の行でgroup_contactのため、この解決策を試すことができますどのように私はそれらを表示することができ、このような別の 後の1は私が意味する https://s3.postimg.io/qb1crcbpf/image.jpg – greenarrow

+0

: //stackoverflow.com/questions/8285035/group-concat-mysql-newline –

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

はい、現時点ではクエリは問題ありません。実際のコードではは閉じています。 – greenarrow

関連する問題