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
유쾌한 사람은 자기 일에만 몰두하는 사람이 아니다. 때론 자신의 일을 전부 제쳐놓고 타인의 문제에 전력을 쏟는 열정이 있는 사람이다. 타인에게 자신의 힘을 나누어주고 마음을 열어주는 것은 자신의 삶을 행복하게 만드는 방법이다.