그누보드 2개의 테이블 컬럼 배열 값 비교 like 검색
본문
$sql1 = "select * from `g5_write_info`"; 값을 가져올 테이블 1
$row1 = sql_query($sql1);
$sql2 = "select * from `test`"; // 값을 가져올 테이블 2
$row2= sql_query($sql2);
$aa = $view['wr_1']; // 현재 보고있는 게시물의 테이블1 wr_1필드 값을 가져옴
while ($row = sql_fetch_array($row2) ) {
$name = $row['name'];
$echo = $row['echo'];
$search_array = explode(",", $row['search']); //콤마 단위로 구분 배열.
for ($i=0; $i<count($search_array); $i++)
{
if ($i > 0)
{
//$row = $search_array[$i].' LIKE \'%$aa%\'' ;
$row = $search_array[$i]."\r" ;
}
else
{
}
}
echo $row;
-----------------------------------------------------------------------------------------------------------
테이블 1의 wr_id마다 다르겠지만 wr_1 필드에는 --> 고구마 라는 문자열 형식으로 값이 들어가 있습니다.
테이블 2는 AUTO_INCREMENT 고유번호, name, echo, search 필드가 있으며,
테이블 2의 search 라는 필드에는 아래처럼 데이터가 들어가 있습니다.
id=1(AUTO_INCREMENT) -> 고구마사과바나나,고구마사과,고구마 (search필드 값)
2 -> 딸기,귤,키위
3 -> 참외파인애플,귤,고구마
4 -> 자두,귤,고구
현재 위 코드 while문에서 $search_array = explode(",", $row['search']); 처럼 테이블 2의 search필드 값을 explode함수를 사용해 콤마 단위로 구분 배열로 지정했습니다.
제가 원하는 것은 테이블 1의 wr_1 필드(고구마) 라는 값에, 테이블2의 search 필드 값들을 비교해서 같은 단어를 포함 하고 있으면 테이블2의 echo필드를 출력 하고 싶습니다.
테이블1 wr_1 = 고구마 라는 값이 들어가 있다면
테이블2 search 필드의 1,3,4 가해당 되어야 합니다.
id=1(AUTO_INCREMENT) -> 고구마사과바나나,고구마사과,고구마 (search필드 값)
2 -> 딸기,귤,키위
3 -> 참외파인애플,귤,고구마
4 -> 자두,귤,고구
테이블 2의 explode 한 search 배열을 like '% %' 형식으로 wr_1 을 비교해야 할거 같은데 잘 모르겠네요.
답변 1
$aa = $view['wr_1'];
$sql = "
select *
from test
where search like '%{$aa}%'
";
$result = sql_query($sql);
while ($row = sql_fetch_array($result)) {
echo $row['name'];
echo "/";
echo $row['search'];
}