大家好我是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函数来分别检索两个表?
答案 0 :(得分:10)
首先是什么表并不重要......简单地说:
<?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();
?>
答案 1 :(得分:1)
$this->db->join('comments', 'comments.id = blogs.id');
通过这一行你告诉我:在评论中搜索所有注释,id等于blogs.id。
通常是我认为的那样:
$this->db->join('comments', 'comments.blogs_id = blogs.id');
你必须在你的表中插入一个名为blogs_id的字段(int值unisgned),因为博客可以有更多的评论。 第一或第二价值的位置并不重要
答案 2 :(得分: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;
}
您可以根据需要更改为查询以执行跟踪和错误方法以获得适当的结果。
答案 3 :(得分:1)
这是它的工作原理:
注意:但是请记住,如果你想使用where /这里我们假设两个表都有 std_id 列
,那么其中一列应匹配注意:写下如下图所示,不要将每个单引号放在一起整理。
*注意:假设我们需要学生表中的 name,phone_no。和 book_name 表单库表。*
$this->db->select('name, phone_number, book_name');
现在编写from查询并编写一个表名(无规则)
$this->db->from('student');
现在将此连接与另一个带连接查询的表
$this->db->join('library', 'students.std_id=library_std_id');
现在写一个where条件,你想要书名表格库表,其中std id = 1(实际上你需要从视图/数据库中获取这个id)
$this->db->where('std_id', 1);
$q= $this->db->get();
现在就可以打印并检查结果了。
答案 4 :(得分:0)
这是我的代码,用于联合尽可能多的表。
我有3个表professeurs
,publications
和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;
}