테스트 사이트 - 개발 중인 베타 버전입니다

2개의 테이블 필드 값 비교 채택완료

OCPlicense 4년 전 조회 3,824

다른 테이블 2개의 값을 비교중인데 잘 안되네요.

 

$view['wr_2'] 가 비교 대상이고, $value 배열형태의 값을 모두 가져와 하나씩 다 대입해서 비교하고 $value 에 있는 문자열이 $view['wr_2']에 조금이라도 포함되면 $value와 같은 테이블의 특정 필드 그 값들만 출력을 하고 싶습니다.

방법이 없나요? sql문으로 해야 하나요?

 

$arr_test = explode(',',$row['array_test']);

foreach($arr_test as $key=>$value){

 

if(strpos($view['wr_2'], $value) !== false) {  
     echo "포함되어 있습니다."; 

     //echo $row['name'];  // $value 와 같은 테이블의 필드 값
     } else {  
     //echo "없습니다.";  
 }

}

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

채택된 답변
+20 포인트
4년 전

질문 참 어렵게 합니다

조금이라도 포함되면 $value와 같은 테이블의 특정 필드 <--이건 무슨 말인가요? A테이블 B테이블

명확히 구분해서 설명하면 쉽지않나요?

또한 $view['wr_2'] , $row['array_test']에 들어잇는 실제 값을 보여주면서 질문하면 알아먹기도 쉬울텐데요

하여튼 $row['array_test']에 있는 값을 나눈 것들이 wr_2에 들어있는 레코드들을 추출한다 뭐 그런 말이겠죠?

 

$arr_test = explode(',',$row['array_test']);

if($arr_test[0]){

$add_qry=array();

foreach($arr_test as $key=>$value) $add_qry[]=" INSTR(wr_2, $value)";

$add_qryStr= implode(" or ", $add_qry);

$qq=sql_query("select * from 테이블 where $add_qryStr ");

}

 

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

O
OCPlicense
4년 전
균이님 도움 주셔서 감사하고 죄송합니다. 프로그래밍을 제대로 배운적도 없고 초보자라 제가 아직 많이 부족합니다. 제가 봐도 상세히 설명을 하지 않은것 같네요.

도움주신 코드를 아래와 같이 수정하여 출력 해봤습니다.

$arr_test = explode(',',$row['array_test']);

if($arr_test[0]){

$add_qry=array();

foreach($arr_test as $key=>$value)

$add_qry[]="$view[wr_2], $value";

$add_qryStr= implode("<br><br>", $add_qry);

print_r ($add_qryStr);

echo "<br><br>".$key . " : " . $value . "</br>";

//$qq=sql_query("select * from 테이블 where $add_qryStr ");

}
echo "<br>";
--------------------------------------------------------------------

아래는 print_r ($add_qryStr); 의 출력 값 입니다.

슬기로운인터넷, 일회용마스크사용
슬기로운인터넷, 일회용
슬기로운인터넷, 사용
슬기로운인터넷, 그누보드게시판
슬기로운인터넷, 그누보드
슬기로운인터넷, 그누
슬기로운인터넷, 내용작성인터넷
슬기로운인터넷, 인터넷
슬기로운인터넷, 인터넷여분필드
슬기로운인터넷, 인터넷여분
슬기로운인터넷, 슬기

---------------------------------------------------------------------

아래는 echo $key . " : " . $value . "</br>"; 출력 값 입니다.

2 : 사용
2 : 그누
1 : 인터넷
2 : 슬기

---------------------------------------------------------------------

제가 원하는 결과 값은 문자열을 포함하는 2개(슬기로운인터넷, 인터넷 과 슬기로운인터넷, 슬기)만 가져오고 싶은데 어렵네요.
균이
4년 전
설명으로는 이해불가 입니다
이해해보려고 머리를 싸매고 생각한 결과 아래와 같이 추측 됩니다만

$view[wr_2] 에는 <슬기로운인터넷>이 들어잇고
$row['array_test']를 자르면 <사용 / 그누 / 인터넷 / 슬기> 4개의 배열이 생기는데
<슬기>가 $view[wr_2]에 문자열이 들어있으므로 이것을 추출해온다
이런 것 아닌가요?

답변의 코드는 이렇게 됩니다

select * from 테이블 where INSTR(wr_2,'사용') or INSTR(wr_2,'그누') or INSTR(wr_2,'인터넷') or INSTR(wr_2,'슬기')

즉 wr_2에 사용 또는 그누 또는 인터넷 또는 슬기 가 포함되어잇으면 추출하라

더 이상 답변은 어렵습니다
O
OCPlicense
4년 전
도움주셔서 진심으로 감사드립니다. 좋은 하루 되세요!

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인