Database

MYSQL TEMPORARY 를 이용한 다중 검색

페이지 정보

본문

MYSQL TEMPORARY 를 이용한 다중 검색


안녕하세요

TEMPORARY 테이블을 이용한 다중 검색에 대해서 적어 볼까 합니다

다른 디비에는 UNION 이라는 것이 있어서 다중검색이 된다더군요

(UNION 이 머래요? 0_0;;;)

전 MYSQL 밖에 몰라서 이걸루 해볼라구 설쳐서 .. 성공 했습니다

먼저 MYSQL 3.23.29a 의 환경에서 실행하였습니다

아래는 소스 입니다

의문 나는 사항이 있으시면 제 홈쥐에 글 남겨 주시거나 메일 주십시요

꾸벅


// TEMPORARY TABLE MAKE
$tmp_make=mysql_query("create temporary table tmp (
sid int NOT NULL DEFAULT '0' auto_increment,
board varchar(20) NOT NULL,
bid int(11) NOT NULL,
subject varchar(255) NOT NULL,
content text,
signdate int(10) NOT NULL,
PRIMARY KEY(sid)
)");
// 게시판 환경 설정 테이블에서 각 게시판 BOARD 가져오기
$total_result =mysql_query("select board from board_config where limit_user_level < $admin_level");
$board_total = mysql_num_rows($total_result);


// BOARD 별로 게시판 돌면서 검색한다
for($i=0;$i<$board_total;$i++) {
mysql_data_seek($total_result,$i);
$board = mysql_fetch_array($total_result);
$search=mysql_query("select bid,subject,content,signdate from $board[board] where name like '%$key%' or subject like '%$key%' or content like '%$key%'");
$search_total=mysql_num_rows($search);

// 검색 결과를 TEMPORARY 테이블에 집어 넣는다
for($j=0;$j<$search_total;$j++) {
mysql_data_seek($search,$j);
$row = mysql_fetch_array($search);
$insert=mysql_query("insert into tmp
(board,bid,subject,content,signdate)
values
('$board[board]','$row[bid]','$row[subject]','$row[content]','$row[subject]')
");
}
}

// TEMPORARY 테이블 정보 가져오기
$result=mysql_query("select * from tmp order by signdate");
$total=mysql_num_rows($result);

echo "
<center>
<table border='0' cellpadding='2' cellspacing='2' width='90%'>
<tr>
<td colspan='10' align='right'>
검 색 어 <font color='red'><b>$key</b></font> 로 <font color='red'><b>$total</b></font> 개의 게시물이 검색 되었습니다
</td>
</tr>
";
// 보여주기
for($k=0;$k<$total;$k++) {
mysql_data_seek($result,$k);
$board=mysql_fetch_array($result);
$board[subject]=stripslashes($board[subject]);
$board[content]=stripslashes($board[content]);
$board[content]= htmlspecialchars($board[content]);
$board[signdate]=date("Y/m/d",$board[signdate]);
$board[content] = shortenStr($board[content],200,"<br>more.....");
$board[subject] = shortenStr($board[subject],60,".....");
$board[subject] = eregi_replace("($key)","<font color='red'>\\1</font>",$board[subject]);
$board[content] = eregi_replace("($key)","<font color='red'>\\1</font>",$board[content]);
echo "
<tr bgcolor='#006699'>
<td height='25'>
<font color='white'><b>$board[subject]</b> ------- $board[signdate]</font>
</td>
</tr>
<tr>
<td height='40'>
<a href='./cyboard/board.php3?board=$board[board]&bid=$board[bid]&mode=reade&key=$key'>$board[content]</a>
</td>
</tr>
";

}
$drop=mysql_query("drop table tmp");

관련자료

등록된 댓글이 없습니다.
Today's proverb
행복해지고 싶다면, 잠시 동안만이라도 가슴에 손을 얹고 생각해 보라. 그러면 진정한 즐거움은, 발치에 돋아나는 잡초나 아침 햇살에 빛나는 꽃의 이술과 같이 우리 주변에 무수히 널려 있다는 것을 알 수 있을 것이다. 《하루 5분 생각이 인생을 결정한다 》 (이범준)