6

大家好,我是codeigniter的新手,目前正在项目中的一个小项目上工作,我正在尝试加入两个表并在单个表中显示数据。我查看了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方法是否可以使用一个简单的函数来分别检索两个表数据?我想要的只是将数据库表中的数据回显到要显示的网站页面中的 html 表中是否可以编写两个 get 函数来分别检索两个表?

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. 假设我们有两个表,即学生,图书馆。

注意:但请记住,如果您想使用 where 条件/,则其中一个列应该匹配,这里我们假设两个表都有std_id

  1. 编写选择查询如下,在括号中写下你想要的所有东西

注意:如下图所示,不要给每一个单独加上引号,把它放在一起。

*注意:假设我们想要名字,phone_no。来自学生表和book_name表单库表。*

      $this->db->select('name, phone_number, book_name');
  1. 现在编写 from 查询并编写表名之一(无规则)

      $this->db->from('student');
    
  2. 现在用连接查询将它与另一个表连接起来

      $this->db->join('library', 'students.std_id=library_std_id');
    
  3. 现在写出你想要书名表格库表的条件,其中std id = 1(实际上你需要从视图/数据库中获取这个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),因为博客可以有更多评论。第一个或第二个值的位置不重要

于 2013-03-04T11:34:55.790 回答
1

嗨,这将适用于在 codeIgnator 中加入两个表。

$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 张桌子professeurs和.publicationssupport

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 回答