마스터포유(Master4U)
Monday, 17 of January
 

로그인 Category
MYSQL TEMPORARY 를 이용한 다중 검색
김인호  2006-03-09 11:54:30 Hit:1847
링크 #1: http://www.koreaphp.co.kr/tip_board/board_read.php?page=1&block=1&no=10&cate=20&parent=3


글쓴이 : 오렌지블루
  저작권자 이메일 : zemnmn@korea.com

출처 : www.koreaphp.co.kr
  작성일 : 2002/04/24 13:27:12



글내용

  
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");  

본문인쇄본문메일발송
MySQL 에서 사용되는 sql문 정리
테이블의 필드 위치 변경하기
Copyright 1999-2019 Zeroboard / skin by ChanBi