CodeIgniterのdbクラスを使用してクエリを作成しています。
クエリは次のようになります。
SELECT `user_id`, `firstname`, `lastname`, `email`, `school_id`, `country_id`
FROM (`users`)
WHERE `user_id` != '1'
AND `firstname` = 'thomas'
OR `lastname` = 'thomas'
OR `email` = 'thomas'
OR `firstname` = 'jefferson'
OR `lastname` = 'jefferson'
OR `email` = 'jefferson'
この場合、ユーザーは「thomas jefferson」を検索し、ユーザー自身のIDは1です。したがって、ユーザーが自分自身を検索できないようにするために、user_idが1でないことを確認します。
クエリがそれほど良くないことは知っていますが、それは私が必要としているものに対しては完全に機能します。また、私は怠惰すぎて正しく実行できません。
このすべての背後にあるPHPコードは
$this->db->select('user_id, firstname, lastname, email, school_id, country_id')->from('users');
$this->db->where('user_id !=', $this->session->userdata('user_id'));
for ($i = 0; $i < count($searchQuery); $i++) {
if ($i == 0) {
$this->db->where('firstname', $searchQuery[$i])->or_where('lastname', $searchQuery[$i])->or_where('email', $searchQuery[$i]);
} else {
$this->db->or_where('firstname', $searchQuery[$i])->or_where('lastname', $searchQuery[$i])->or_where('email', $searchQuery[$i]);
}
}
$this->db->limit(10);
$query = $this->db->get();
私は99%ポジティブです
WHERE `user_id` != '1'
AND(<-- this) `firstname` = ...
間違っていますが、私はそれを行う別の方法を理解できないようです。