2017-03-09 77 views
0

直升机,无法选择数据正确

我写了一个查询我要显示的用户列表,其中该当前用户没有遵守我想这样做,但它显示我只有2个记录,并在我删除限制它显示我所有的用户,除了我已经跟随它的一个是好的,但我不知道为什么它只显示2个用户,当我把限制,因为它应该是5前3个用户不显示是它因为我跟在他们后面,这里是我的脚本,我无法正确地解释,但我将不胜感激您的意见,所以我可以更多的相应解释

<?php 
$sql = $this->db->limit(5); 
$sql = $this->db->get('users'); 
foreach($sql->result() as $data): 
$sql1 = $this->db->get_where('followers', array('user_id' => $data->id)); 
$sql2 = $this->db->get_where('followers', array('user_id' => $data->id, 'follower_id' => $user_id)); 
if($sql2->num_rows() != 0): 
echo $data->username; 
endif; 
endforeach; 
?> 

表S = tructure追随者

id(int)  
user_id(int)   
follower_id(int) 

表结构的用户

id(int)  
username(varchar)   
email(varchar) 
password(varchar) 
+0

你可以发表你的表模式? –

+0

@NavjotSingh用户或追随者? –

+0

无论是用户还是关注者 –

回答

0
<?php 
    $this->db->start_cache(); 
    $sql = $this->db->limit(5); 
    $this->db->stop_cache(); 
    $sql = $this->db->get('users'); 
    $this->db->flush_cache(); 

    foreach($sql->result() as $data): 
    $this->db->start_cache(); 
    $sql1 = $this->db->get_where('followers', array('user_id' => $data->id)); 
    $this->db->flush_cache(); 

    $this->db->start_cache(); 
    $sql2 = $this->db->get_where('followers', array('user_id' => $data->id, 'follower_id' => $user_id)); 
    $this->db->flush_cache(); 

    if($sql2->num_rows() != 0): 
    echo $data->username; 
    endif; 
    endforeach; 
?>