리스트 출력 쿼리문 질문입니다 채택완료
schedule 필드에 [ 수학, 문학, 영어, 불어, 공학, 이계, 문과, 역사 ] 중에 문학,영어,이계를 선택하여 DB에 구분자 " , "로 저장하였습니다
그리고 해당 스케쥴 리스트 안에 탭박스로 1~10일 11~20일 21~31일 을 만들었습니다
스케쥴에 들어가서 내가 보고있는 스케쥴에 수학,문학 이고 탭박스에 1~10일을 선택하면 예) 문학,영어 / 수학,문학,역사 / 공학,문학,이계 등등 이런식으로 DB에 수학,문학이 포함되어있는 모든걸 다 불러오고 싶습니다
$sql_order = " schedule desc";
$sql = "
SELECT *
FROM new_schedule
WHERE bo_table = '{$bo_table}' and schedule like '%$schedule %'
{$sql_where}
order by {$sql_order}
LIMIT 10
";
쿼리문을 이렇게 짰는데....원하는것처럼 매치가 안되서 도움을 요첨합니다 ㅠ
답변 4개
$tmp = explode(",", $schedule);
$con = "') or INSTR( schedule,'";
$sch_qry = "INSTR( schedule,'". implode($con,$tmp)."')";
where절을 아래 처럼
WHERE bo_table = '{$bo_table}' and ( $sch_qry )
답변에 대한 댓글 4개
$con = "') or INSTR( schedule,'";
$sch_qry = "INSTR( schedule,'". implode($con,$tmp)."')";
$sql_order = " schedule desc";
$sql = "
SELECT *
FROM new_schedule
WHERE bo_table = '{$bo_table}' and ( $sch_qry )
{$sql_where}
order by {$sql_order}
LIMIT 10
";
이렇게 하는게 맞는지 모르겠지만 매칭이 안되고 잇습니다 ㅠ
$sql_where가 문제 없다면 $schedule값이 "국어,영어,수학" 처럼 공백이 없어야 하는데
공백이 있거나 디비에 저장된 필드 값에 공백이 들어갔거나 그런 것을 살펴보세요
$con = "') or INSTR( schedule,'";
$sch_qry = "INSTR( schedule,'". implode($con,$tmp)."')";
$sql_order = " schedule desc";
$sql = "
SELECT *
FROM new_schedule
WHERE bo_table = '{$bo_table}' and ( $sch_qry )
order by {$sql_order}
LIMIT 10
";
새로 쿼리문을 만들어서 해보았으나 매치가 안되고 그냥 내림차순으로 DB에 저장된순으로 나열이 되어버리네요 ㅠ
내가 보고있는 스케쥴에 수학,문학,영어가 있으면 11~20일까지 탭을 선택하면 수학,문학,영어 3단어중 한개라도 일치하면 전부 불러와라 이렇게 하고 싶은데 아직 완전 초보라 힘드네요 ㅠ
많이 도움주셔서 감사합니다..
댓글을 작성하려면 로그인이 필요합니다.
댓글을 작성하려면 로그인이 필요합니다.
쿼리까지 할려면 이전 소스까지 다 올려주셔야 되겠네요..
그리고 설명이 좀 부족합니다.
글로만 봐서는 정확히 원하는 바를 모르겠습니다.
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
스케쥴에 " 수학, 문학, 영어 " 라고 들어가 있을때 like "%수학, 영어 %" 라고 검색하면 안될거 같은데요
DB의 필드를 분리하지 않으려면 like '%수학%' and like "%영어%' 이런식으로 하지 않는 이상 답이 없지 싶습니다.
답변에 대한 댓글 3개
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인