6

みなさん、こんにちは。私はcodeigniterを初めて使用し、現在プロジェクト内の小さなプロジェクトに取り組んでいます。2つのテーブルを結合し、1つのテーブルにデータを表示しようとしています。codeigniterが持っているユーザーガイドを見ましたが、これがどのように機能するのかわかりません

$this->db->join();

どのテーブルが最初で、どのIDキーが最初である必要があります。誰かがこれについてもっと詳しく説明してもらえますか?できれば例を使ってください。クレデンシャルテーブルとtblanswersを結合しようとしています。答えるためのTnx。

私はこの例を使用して関数をコーディングしようとしました:

$this->db->select('*');
$this->db->from('blogs');
$this->db->join('comments', 'comments.id = blogs.id');

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

編集: codeigniterでjoinメソッドを使用する代わりに、単純な関数を使用して2つのテーブルデータを別々に取得することは可能ですか?私が欲しいのは、データベーステーブルから私のウェブサイトページのhtmlテーブルにデータをエコーし​​て表示することです。2つのget関数を記述して2つのテーブルを別々に取得することは可能ですか?

4

5 に答える 5

16

どのテーブルが最初であるかは関係ありません...単純に:

<?php

$this->db->select('t1.name, t2.something, t3.another')
     ->from('table1 as t1')
     ->where('t1.id', $id)
     ->join('table2 as t2', 't1.id = t2.id', 'LEFT')
     ->join('table3 as t3', 't1.id = t3.id', 'LEFT')
     ->get();
?>
于 2013-03-04T11:35:00.610 に答える
2

仕組みは次のとおりです。

  1. 学生と図書館という2つのテーブルがあるとします。

注:ただし、where条件を使用する場合は、列の1つが一致する必要があることに注意してください。ここでは、両方のテーブルにstd_id列があると想定しています。

  1. 次のように選択クエリを記述します。括弧内に必要なものをすべて記述します。

注:以下に示すように書いてください。それぞれに引用符を付けないでください。一度に全体を引用してください。

*注:名前phone_noが必要だとします。学生テーブルとbook_nameフォームライブラリテーブルから。*

      $this->db->select('name, phone_number, book_name');
  1. 次に、fromクエリを記述し、テーブル名の1つを記述します(ルールなし)

      $this->db->from('student');
    
  2. 次に、これを結合クエリを使用して別のテーブルと結合します

      $this->db->join('library', 'students.std_id=library_std_id');
    
  3. ここで、std id = 1の本名フォームライブラリテーブルが必要なwhere条件を記述します(実際には、ビュー/データベースからこのIDをフェッチする必要があります)

      $this->db->where('std_id', 1);
      $q= $this->db->get();
    

これで、結果を印刷して確認できるようになりました。

于 2018-06-09T06:37:36.487 に答える
1
$this->db->join('comments', 'comments.id = blogs.id');

この行であなたは言います:idがblogs.idに等しいすべてのコメントのコメントの中を私を検索してください。

通常、私が思うようなものです:

$this->db->join('comments', 'comments.blogs_id = blogs.id');

ブログにはより多くのコメントを含めることができるため、blogs_id(int value unisgned)という名前のフィールドをテーブルに挿入する必要があります。1番目または2番目の値の位置は重要ではありません

于 2013-03-04T11:34:55.790 に答える
1

こんにちは、これはcodeIgnatorで2つのテーブルを結合するために機能します。

$this->db->select("chat.id,chat.name,chat.email,chat.phone,chat.date,post.post");
      $this->db->from('chat');
      $this->db->join('post', 'chat.id = post.id');
      $query = $this->db->get();

    if($query->num_rows() != 0)
    {
        return $query->result();
    }
    else
    {
        return false;
    }

トレイルとエラーの方法を好きなようにクエリに変更して、適切な結果を得ることができます。

于 2017-09-23T12:14:56.750 に答える
0

これは、可能な限り多くのテーブルを結合するための私のコードです。

私は3つのテーブルを持っていますprofesseurspublicationsそしてsupport

public function toutesdonnées(){

    $this->db->select("*");
      $this->db->from('publication');
      $this->db->join('support', 'publication.idsup = support.idsup');
      $this->db->join('professeurs', 'publication.emailprof = professeurs.emailprof');
      $query = $this->db->get();

    if($query->num_rows() != 0)
    {
        return $query->result();
    }
    else
    {
        return false;
    }
于 2019-11-04T11:30:56.360 に答える