0

我是codeigniter的新手。目前我正在做一个小项目作为练习,我试图在同一个网页上显示两个表的数据。我尝试$this->db->join(); 在 codeigniter 中使用,但它对我不起作用。我想知道在同一个网页上显示两个表数据是否还有其他选项可以探索?

我还发布了我尝试过的加入方法 - 也许你可以告诉我我做错了什么?

模型

  $this->db->select('tblanswers.*,credentials.*');
    $this->db->from('tblanswers');
    $this->db->join('credentials', 'tblanswers.answerid = credentials.cid', 'left'); 
    $query = $this->db->get();
    return $query->result();

这个连接函数的问题是它只显示一个表而不显示另一个表。我用 print_r($data['query']); die()来检查它只返回 tblanswer 而不是两者。

编辑

表结构:

证书

+--------------+------+-------------+-------+-------+
| cid(PRIMARY) | name | second_name | phone | email |
+--------------+------+-------------+-------+-------+

答案

+-------------------+--------+------------+---------+---------+---------+
| answerid(PRIMARY) | userid | questionid | answerA | answerB | answerC |
+-------------------+--------+------------+---------+---------+---------+
4

1 回答 1

2

好的,首先你的表必须有关系数据才能执行连接

return $this->db->select('tblanswers.*,credentials.*')
                      ->join('credentials cred', 'tblanswers.answerid = credentials.cid', 'LEFT')
                      ->get('tblanswers')
                      ->result_object()

所以这将执行一个查询,从* answerid 字段 = cid 字段的凭证表中获取数据

例如

  SELECT * FROM tblanswers
  JOIN credentials ON credentials.cid = tblanswers.answerid

编辑

似乎您不需要为您想要的东西使用加入,您可以简单地去

 return $this->db->select('tblanswers.*,credentials.*')
                ->from('tblanswers, credentials')
                ->get()
                ->result_object();

因为看起来您在两者之间没有任何关系数据,但是例如,您可以通过以下方式获得与该 awnser 相关的所有问题

return $this->db->select('tblanswers.*,questions.*')
                      ->join('questions AS q', 'tblanswers.questionid = q.question_id', 'LEFT')
                      ->get('tblanswers')
                      ->result_object()
于 2013-03-05T08:42:06.397 回答