특정게시판의 리스트를 모아서 보여주고 싶습니다. > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

특정게시판의 리스트를 모아서 보여주고 싶습니다. 정보

특정게시판의 리스트를 모아서 보여주고 싶습니다.

본문

오류가 나는곳의 주소를 알려주시면 더 빠르고 정확하게 답변 받을 수 있습니다.

오류 주소 :

현재 20개의 갤러리 게시판을 운영중에 있습니다.
여기서 10개의 게시판을 선택한 후

리스트 페이지만 gallery.php 형태로 만들어 10개 게시판의 리스트를 모아서 입력순을 불러오고 싶습니다.

방법이 없을까요?

답변 부탁드립니다.

댓글 전체

갤러리는 아니지만...
여러개의 게시판들의 글을 종합적으로 불러다가 리스팅시켰던 적이 있습니다..
그 때 사용한 소스입니다...
좀 복잡해보이긴 합니다만... 대충 훑어보시면 사용법을 아실 수 있을겁니다^^

union이 많이 사용된지라... DB 퍼포먼스 측면에선 어떨지 모르나...
소규모사이트에서 사용한 거라 별 문제 없었는데..
혹시 사용해보시고 성능상의 문제가 된다면 좀 귀띔해주실 수 있나요?
쿼리문 개선작업이 필요할 것 같네요^^

살짝 소스 설명을 덧붙이자면...
DB접속부분은 잘 아실 것이고...
캐릭터셋도... DB캐릭터셋과... html or php파일의 캐릭터셋이 일치하지 않을때라든가..
맞춰주실 때 적절히 변경해주시면 됩니다..

아래의 쿼리문은 각 테이블들을 select함과 동시에 다른 게시판과 union해서 총 10개의 게시물을 뽑아내는 쿼리문입니다...

select wr_id, wr_subject, wr_hit, wr_name, wr_datetime, 's21' tbl from g4_write_sub21 where wr_is_comment=0
이렇게 떼어놓고 보시면 g4_write_sub21이라는 테이블에서 wr_id, wr_subject, wr_hit, wr_name, wr_datetime을 뽑아 내는거고... 마지막으로 's21' tbl이라는 녀석은 뽑아낸 게시물이 어떤 게시판에서 뽑아낸 것인지를 판별하기 위해 임의로 삽입한 것입니다...
수정하실 부분은... 이미지 path를 포함한 필드명을 넣어주시면 될 것 같구요...

switch문으로 tbl을 판별해서 어떤 게시판에서 뽑혔냐에 따라서... 게시판명을 출력할 수 있게...
처리 해 줍니다...
게시판에 상관없이 이미지만 뿌려주실 거라면 이 부분은 없어도 되구요...^^

하시다가 안되시면 쪽지주세요^^

<meta http-equiv="Content-Type" content="text/html; charset=euc-kr" />
<?
mysql_connect('localhost', 'db아이디', 'db패스워드');
mysql_select_db('db명');
//mysql_query("set names euckr"); 캐릭터셋 세팅이 필요할 시...

$query="select wr_id, wr_subject, wr_hit, wr_name, wr_datetime, 's21' tbl from g4_write_sub21 where wr_is_comment=0 UNION ALL select wr_id, wr_subject, wr_hit, wr_name, wr_datetime, 's22' tbl from g4_write_sub22 where wr_is_comment=0 UNION ALL  select wr_id, wr_subject, wr_hit, wr_name, wr_datetime, 's23' tbl from g4_write_sub23 where wr_is_comment=0 UNION ALL select wr_id, wr_subject, wr_hit, wr_name, wr_datetime, 's24' tbl from g4_write_sub24 where wr_is_comment=0 UNION ALL select wr_id, wr_subject, wr_hit, wr_name, wr_datetime, 's31' tbl from g4_write_sub31 where wr_is_comment=0 UNION ALL select wr_id, wr_subject, wr_hit, wr_name, wr_datetime, 's32' tbl from g4_write_sub32 where wr_is_comment=0 UNION ALL select wr_id, wr_subject, wr_hit, wr_name, wr_datetime, 's33' tbl from g4_write_sub33 where wr_is_comment=0 UNION ALL select wr_id, wr_subject, wr_hit, wr_name, wr_datetime, 's34' tbl from g4_write_sub34 where wr_is_comment=0 UNION ALL select wr_id, wr_subject, wr_hit, wr_name, wr_datetime, 's41' tbl from g4_write_sub41 where wr_is_comment=0 order by wr_datetime desc limit 0, 10;";
$result=mysql_query($query);

echo "<table width=\"870\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";

if(!$result){

echo "<tr><th width=\"466\" height=\"41\" valign='middle' style='font-size:9pt;'>게시물이 없습니다.</th><td width=\"101\"></td><td width=\"102\"></td><td width=\"101\"></td><td width=\"100\"></td></tr>";
   
}else{

    while($r=mysql_fetch_object($result)){
   
        switch($r->tbl){
            case 's21':
            $r->tbl="[게시판1]";
            $table="sub21";
            break;
            case 's22':
            $r->tbl="[게시판2]";
            $table="sub22";
            break;
            case 's23':
            $r->tbl="[게시판3]";
            $table="sub23";
            break;
            case 's24':
            $r->tbl="[게시판4]";
            $table="sub24";
            break;
            case 's31':
            $r->tbl="[게시판5]";
            $table="sub31";
            break;
            case 's32':
            $r->tbl="[게시판6]";
            $table="sub32";
            break;
            case 's33':
            $r->tbl="[게시판7]";
            $table="sub33";
            break;
            case 's34':
            $r->tbl="[게시판8]";
            $table="sub34";
            break;
            case 's41':
            $r->tbl="[게시판9]";
            $table="sub41";
            break;
        }
       
       
        $query2="select wr_parent wr_cmt from g4_write_$table where wr_is_comment=1 and wr_parent=$r->wr_id";
        $result2=mysql_query($query2);
        $q=mysql_num_rows($result2);
        $r->wr_datetime=substr($r->wr_datetime, 0, 10);   
       
          echo ("<tr>
                    <td width=\"466\" height=\"41\" valign='middle' style=\"line-height:1.4em;padding-left:10px;padding-top:1px;\"><a href='bbs/board.php?bo_table=$table&wr_id=$r->wr_id' onfocus='blur();'><strong>$r->tbl</strong><br>$r->wr_subject</a></td>
                    <td width=\"101\" height=\"41\" align='center' valign='middle'><strong>$r->wr_name</strong></td>
                    <td width=\"102\" height=\"41\" align='center' valign='middle'>$q</td>
                    <td width=\"101\" height=\"41\" align='center' valign='middle'>$r->wr_hit</td>
                    <td width=\"100\" height=\"41\" align='center' valign='middle'>$r->wr_datetime</td>
                </tr>");
   
    }

}

echo "</table>";

?>
전체 66,554 |RSS
그누4 질문답변 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT