我有三个表(问题,答案,用户),我想查询用户发布的所有问题和答案。
这是我的代码:
$query = $this->db->select('user.*,questions.*,answers.*')
->from('user')
->join('questions','questions.user_id = user.u_id','LEFT')
->join('answers','answers.user_id = user.u_id','LEFT')
->where('user.u_id',$profile[0]['u_id'])
->group_by('user.u_id')
->get();
echo $query->num_rows();
我在我的表中有1个问题和1个答案,但是当我尝试这个代码时,它只给我一行。
答案 0 :(得分:0)
尝试使用方法..
像这样用单行写你的查询
$query= "select * from user where" ;
也是{这只是您必须编写查询的查询示例)
然后
if ($result = mysqli_query($connection, $query )) {
/* fetch associative array */
while ($res = mysqli_fetch_assoc($result)) {
print_r($res);
}
mysqli_free_result($result);
}
在这种情况下,$ connection是您的数据库连接
答案 1 :(得分:0)
您是否尝试过外连接,而是左连接? 也许甚至是左外连接,解决了你的问题,试试吧。
哦,而不是'num_rows()',我想你只想使用'row()' 检索所有表格的数据。
$this->db->select('user.*,questions.*,answers.*');
$this->db->join('questions','questions.user_id = user.u_id','OUTER LEFT');
$this->db->join('answers','answers.user_id = user.u_id','OUTER LEFT');
$this->db->where('user.u_id',$profile[0]['u_id']);
$this->db->group_by('user.u_id')
$query = $this->db->get('user')->row();
echo $query;
我改变了一点你的写作,如果你想要的话,只需复制和测试