CI 묻고 답하기

제목 디비 관련 질문이 있습니다..ㅡ.ㅜ;
글쓴이 아 골치야 작성시각 2014/08/29 22:33:07
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 11511   RSS
오늘 하루종일 이걸로 씨름하고 있네요...;

조건을 걸고 데이터를 가지고 오려고 하는데요...

총 4가지의 조건을 가지고 있습니다.

조건1 그리고 (조건2 아니면 조건3) 그리고 조건4 에 해당하는 데이터를 가지고 오려고 하는데요.

조건2와 조건3은 이 두곳에 한쪽에라도 그 값이 있으면 불러 오게 하려고 합니다.

그래서 데이터를 불러올때 

$this->db->where_in('필드(?)1', 조건1);
$this->db->where_in('필드(?)2', 조건2);
$this->db->or_where_in('필드(?)3', 조건3);
$this->db->where_in('필드(?)4', 조건4);
$data = $this->db->get('om_data', $this->db->order_by('no desc'));

*필드라고 쓴건.. 데이터가 저장되는 하나의 슬롯입니다..ㅡ.ㅜ 정확히 뭐라고 부르는지 까묵어서..; 쿼리라고 하던가...; 어쨋든..;...

이렇게 해서 코딩해서 돌려 봤거든요.

그런데 문제가 있더라구요.

1번, 2번, 3번 전체에 자료에 해당되고
마지막 4번만 특정 조건을 걸고 검색하면

전체의 자료중 오로지 4번 조건에 해당하는 자료만 출력되는것이 아니라...

그냥 전체 자료가 출력이 되더라구요.

or_where_in 이 부분이 아무래도 모든 자료를 출력하게 만드는것 같아 다른걸로도 막 바꺼봤거든요..

그런데 원하는데로 안되네요. 왜그런걸까요.
 다음글 + 표시 사라지는 문제 (2)
 이전글 CI_Controller의 $this->load-... (3)

댓글

변종원(웅파) / 2014/08/29 22:51:31 / 추천 0
Sql문으로 작성하셔야 합니다. ^^;
아 골치야 / 2014/08/29 22:55:47 / 추천 0
아..ㅠㅠ 그렇군요. 괜히 엉뚱한짓을 해버렸나보네요 ㅠㅠ 감사합니다.
kaido / 2014/08/30 14:40:11 / 추천 0
액티브레코드로 복잡한 웨어절을 사용시에는 한번 실제 적용되는 쿼리를 보시는게 좋습니다.

생각 하신거랑 다르게 나올 가능성이 높거든요.

특히시 처음 시작절에는 반드시라고 좋을 만큼 

<span neue,helvetica,arial,sans-serif"="">$this->db->where(); <- 이거부터 시작 하셔야 합니다.

약간의 논리적 버그가 있어요.