채택완료

2개의 테이블 필드 값 비교

2020-11-15 (일) 00:13:04 4,396

다른 테이블 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개 / 댓글 3개

채택된 답변
+20 포인트

질문 참 어렵게 합니다

조금이라도 포함되면 $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개

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

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

$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개(슬기로운인터넷, 인터넷 과 슬기로운인터넷, 슬기)만 가져오고 싶은데 어렵네요.
설명으로는 이해불가 입니다
이해해보려고 머리를 싸매고 생각한 결과 아래와 같이 추측 됩니다만

$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에 사용 또는 그누 또는 인터넷 또는 슬기 가 포함되어잇으면 추출하라

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

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