array 나열 시 질문드립니다.

array 나열 시 질문드립니다.

QA

array 나열 시 질문드립니다.

본문

안녕하세요

매번 sir을 통해 많은 고수님들에게 도움을 받고있는 회원입니다.

감사드립니다.

 

다름이아니라 작업 중 하나 궁금한점이 있어 질문드리게되었습니다.

 

    $where .= " And concat(',', c.Aname, ',') 
                    like concat( '%' , '{$val}' , '%' )";
    $total_param.="&Aname[]=".$val;

 

현 소스에서 이렇게 되어있는데요

예를들어

짬뽕,짜장면,케이크,커피  4개의 리스트가 있고

 

1번가게 : 짬뽕,짜장면 취급점

2번가게 : 케이크, 커피 취급점이라고 가정하였을 때

 

31679087_1582809959.9304.png

전부 클릭하거나 1번가게,2번가게 크로스로 짬뽕,커피 혹은 짜장면 케이크 이런식으로 체크해도

나오게끔 하고 싶습니다.

 

하지만 지금 소스 상태에서는 이렇게 전체 클릭하면 결과값이 없고

짬뽕,짜장면으로 체크 시 1번가게, 케이크,커피 체크 시 2번가게만 나옵니다.

 

And concat문을 구글찾아 공부해봐도 잘 적용되지않아 여쭙습니다.

고수님들의 많은 조언 부탁드립니다.

 

이 질문에 댓글 쓰기 :

답변 2

$where .= " And concat(',', c.Aname, ',') in (',짬뽕,' , ',짜장면,') ";

이렇게 하시면 될 듯 하네요..^^

    $where .= " And (

                       concat(',', c.Aname, ',') like concat( '%' , '짬뽕' , '%' ) or

                       concat(',', c.Aname, ',') like concat( '%' , '짜장면' , '%' )

                    )";

eyekiss님 답변 감사드립니다.
정말 많은 도움이 되었습니다.

다름이아니라 목록이 50개 이상일 경우는 or로 나열해주면 소스가 길어질 것 같아 한 번 더 질문을 드리게되었습니다.
목록이 50개라 3개만 test를 해보았는데 50개가 나열되어있어서 그런지 다른값이 자꾸 출력되네요ㅜㅜ

${val}값과 Aname으로 처리가 가능할지도 여쭙습니다.

정말 감사드립니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 123,643 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT