我是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 |
+--------------+------+-------------+-------+-------+
tblanswers
+-------------------+--------+------------+---------+---------+---------+
| answerid(PRIMARY) | userid | questionid | answerA | answerB | answerC |
+-------------------+--------+------------+---------+---------+---------+
答案 0 :(得分:1)
好的,首先你的表必须有关系数据来执行连接
return $this->db->select('tblanswers.*,credentials.*')
->join('credentials cred', 'tblanswers.answerid = credentials.cid', 'LEFT')
->get('tblanswers')
->result_object()
所以这将执行查询从凭据表中获取数据,其中* answerid字段= cid字段
E.G
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()