CodeIgniter / MySQL - 选择,不等于和等两次

时间:2014-04-06 13:39:56

标签: php mysql sql codeigniter

在CodeIgniter中使用以下活动记录查询时,我遇到了返回正确记录的问题:

$q = $this->db->query("SELECT fName, lName, userID 
                       FROM user 
                       WHERE userID !='$user_id'
                       AND fName LIKE '%$search_criteria%' 
                       OR lName LIKE '%$search_criteria%'"); 

查询根据$search_criteria搜索users表。 $user_id是登录用户的ID,因此不会显示在搜索结果中。

如果我搜索登录用户的第一个名称,它不会在搜索结果中返回登录用户,但如果我按姓氏搜索,它确实会返回登录用户,我不会#39理解为什么......

1 个答案:

答案 0 :(得分:1)

逻辑中存在缺陷,您要检查用户ID,并检查名字或姓氏......我在这里做的是查找用户ID和fname或lname。 parens分隔标准,允许fname或lname但始终ID

$q = $this->db->query("SELECT fName, lName, userID 
                       FROM user 
                       WHERE userID !='$user_id'
                       AND (fName LIKE '%$search_criteria%' 
                       OR lName LIKE '%$search_criteria%'"));