2004-03-25
1288 HIT
|
우선 각 게시판에서 조회수를 기준으로 열개를 뽑아옵니다 $table_array = array("A","B","C"); for($i=0;$i<count($table_array);$i++){ $result=mysql_query("SELECT uid,ref FROM $table_array[$i] ORDER BY ref DESC LIMIT 10"); $row=mysql_fetch_array($result); $uid=$row[uid] . "|" . $table_array[$i]; $ref_uid[$uid]=$row[ref]; } arsort($ref_uid); $ref_uid = array_keys($ref_uid); for($j=0;$j<count($ref_uid); $j++){ $record = explode("|", $ref_uid[$j]); $uid = $record[0]; $table = $record[1]; $query = "SELECT * FROM $table where uid='$uid'"; 원하는 데이터 출력... } 예전에 제가 팁텍에 올렸던 팁인데, union으로 쿼리 한방에 된다고 하여 삭제했었던 팁입니다. ========================================================================================================== 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"); |

