특정그룹의게시판들에서 최신글추출실 공지사항글제거하고 뽑는부분좀 해결해주세요. > 그누3질답

그누3질답

특정그룹의게시판들에서 최신글추출실 공지사항글제거하고 뽑는부분좀 해결해주세요. 정보

그누보드 특정그룹의게시판들에서 최신글추출실 공지사항글제거하고 뽑는부분좀 해결해주세요.

본문

3.02패치버전으로 업글해서 사용중입니다.
다음은 요기 사이트에서 참조해서 사용하는 부분입니다. 해당 그룹의 게시물을 추출하는데까지는 잘되는데요. 추출시에 공지사항 즉 wr_notice가 -1이면 해당글을 추출하지 않아야하는데 어제 밤새 헤매도 해결이 안보이네요
초보에게 서광을 비춰주세요 ^^
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가

define("_DOCTYPE_", "STYLE");
include("lib/latest.lib.php");




?>

<!--link rel='stylesheet' href="<?=//$gnu_path.$bbsdir?>/skin/board/chomi_03news/style.skin.css" type="text/css"-->
<?include($gnu_path."mbhead.php");?>
<table width="98%" cellpadding=0 cellspacing=0 align=center>
<tr>
    <td width='' valign=top>

<?
$limit = 10; // 쿼리에서 limit 로 뽑아올 갯수

// TEMPORARY TABLE MAKE
$tmp_make = mysql_query("create temporary table tmp (
  bo_table varchar(20) NOT NULL default '',
  bo_subject varchar(255) NOT NULL default '',
  wr_id int(11) NOT NULL auto_increment,
  ca_id int(11) NOT NULL default '0',
  wr_notice tinyint(4) NOT NULL default '0',
  wr_num int(11) NOT NULL default '0',
  wr_reply varchar(5) NOT NULL default '',
  wr_parent_id int(11) NOT NULL default '0',
  wr_comment int(11) NOT NULL default '0',
  wr_commentcnt int(11) NOT NULL default '0',
  wr_html tinyint(4) NOT NULL default '0',
  wr_secret tinyint(4) NOT NULL default '0',
  wr_recv_email tinyint(4) NOT NULL default '0',
  wr_subject varchar(255) NOT NULL default '',
  wr_content text NOT NULL,
  wr_link1 varchar(255) NOT NULL default '',
  wr_link2 varchar(255) NOT NULL default '',
  wr_link1_hit int(11) NOT NULL default '0',
  wr_link2_hit int(11) NOT NULL default '0',
  wr_file1 varchar(255) NOT NULL default '',
  wr_file2 varchar(255) NOT NULL default '',
  wr_file1_source varchar(255) NOT NULL default '',
  wr_file2_source varchar(255) NOT NULL default '',
  wr_file1_download int(11) NOT NULL default '0',
  wr_file2_download int(11) NOT NULL default '0',
  wr_hit int(11) NOT NULL default '0',
  wr_good int(11) NOT NULL default '0',
  wr_nogood int(11) NOT NULL default '0',
  mb_id varchar(20) NOT NULL default '',
  wr_passwd varchar(16) NOT NULL default '',
  wr_name varchar(20) NOT NULL default '',
  wr_email varchar(255) NOT NULL default '',
  wr_homepage varchar(255) NOT NULL default '',
  wr_datetime datetime NOT NULL default '0000-00-00 00:00:00',
  wr_ip varchar(15) NOT NULL default '',
  wr_user_agent varchar(255) NOT NULL default '',
  wr_update_datetime datetime NOT NULL default '0000-00-00 00:00:00',
  wr_update_ip varchar(15) NOT NULL default '',
  wr_update_user_agent varchar(255) NOT NULL default '',
  PRIMARY KEY  (wr_id),
  KEY index1 (wr_notice,wr_num,wr_reply),
  KEY index2 (wr_num,wr_parent_id),
  KEY index3 (wr_datetime)
        )");

// 게시판 환경 설정 테이블에서 각 게시판 BOARD 가져오기
$sql = " select a.bo_subject, a.bo_table, b.gr_subject
          from $cfg[table_board] a, $cfg[table_group] b
          where a.gr_id = b.gr_id AND b.gr_id = 'seijong5'
          order by b.gr_id, a.bo_table ";
$result = sql_query($sql);

$테이블수 = mysql_num_rows($result);
$sql_limit = intval($limit/$테이블수) + 3;

// BOARD 별로 게시판 돌면서 검색한다
while($row = mysql_fetch_array($result)) {
    $tbl = "{$cfg[write_table_prefix]}{$row[bo_table]}";

$sql2 = " select a.wr_id,
                    a.wr_parent_id,
                    a.mb_id,
                    a.wr_name,
                    a.wr_email,
                    a.wr_num,
                    a.wr_subject,
                    a.wr_comment,
                    a.wr_commentcnt,
                    a.wr_datetime,
                    b.mb_icon
                from $tbl a left join $cfg[table_member] b on (a.mb_id = b.mb_id)
where a.wr_comment = 0
                order by a.wr_id desc
limit $sql_limit";
$result2 = sql_query($sql2);

    // 검색 결과를 TEMPORARY 테이블에 집어 넣는다.
    for ($i = 0; $row2 = mysql_fetch_array($result2); $i++) {
        if ($row2[wr_comment] > 0) {
            $sql3 = " select wr_subject
                        from $tbl
                      where wr_comment = 0 and wr_parent_id = '$row2[wr_parent_id]' ";
            $row3 = sql_fetch_array($sql3);
            $wr_subject = $row3[wr_subject];
        } else {
            $wr_subject = $row2[wr_subject];
        }

sql_query("INSERT tmp SET
  bo_table = '$row[bo_table]',
  bo_subject = '$row[bo_subject]',
  ca_id = '$row2[ca_id]',
  wr_notice = '$row2[wr_notice]',
  wr_num = '$row2[wr_num]',
  wr_reply = '$row2[wr_reply]',
  wr_parent_id = '$row2[wr_parent_id]',
  wr_comment = '$row2[wr_comment]',
  wr_commentcnt = '$row2[wr_commentcnt]',
  wr_html = '$row2[wr_html]',
  wr_secret = '$row2[wr_secret]',
  wr_recv_email = '$row2[wr_recv_email]',
  wr_subject = '".get_text(cut_str($wr_subject,65,'…'))."',
  wr_content = '$row2[wr_content]',
  wr_link1 = '$row2[wr_link1]',
  wr_link2 = '$row2[wr_link2]',
  wr_link1_hit = '$row2[wr_link1_hit]',
  wr_link2_hit = '$row2[wr_link2_hit]',
  wr_file1 = '$row2[wr_file1]',
  wr_file2 = '$row2[wr_file2]',
  wr_file1_source = '$row2[wr_file1_source]',
  wr_file2_source = '$row2[wr_file2_source]',
  wr_file1_download = '$row2[wr_file1_download]',
  wr_file2_download = '$row2[wr_file2_download]',
  wr_hit = '$row2[wr_hit]',
  wr_good = '$row2[wr_good]',
  wr_nogood = '$row2[wr_nogood]',
  mb_id = '$row2[mb_id]',
  wr_passwd = '$row2[wr_passwd]',
  wr_name = '".get_text(cut_str($row2[wr_name],12))."',
  wr_email = '$row2[wr_email]',
  wr_homepage = '$row2[wr_homepage]',
  wr_datetime = '$row2[wr_datetime]',
  wr_ip = '$row2[wr_ip]',
  wr_user_agent = '$row2[wr_user_agent]',
  wr_update_datetime = '$row2[wr_update_datetime]',
  wr_update_ip = '$row2[wr_update_ip]',
  wr_update_user_agent = '$row2[wr_update_user_agent]'
        ");
    }
    mysql_free_result($result2);
}
mysql_free_result($result);

// TEMPORARY 테이블 정보 가져오기
$result = sql_query("SELECT * FROM tmp ORDER BY wr_datetime DESC LIMIT $limit");

?>

<table width=100% border=1 cellspacing=3 cellpadding=2 align=center>
<tr><td colspan=3 background="<?=$gnu_path?>image/line_width.gif"></td></tr>
<tr>
    <td height=30 bgcolor=EEEEEE colspan=3 align=center>&nbsp; <b><font color=1079DE>새로 올라온 글 <?=$limit?></font></b></td>
</tr>
<tr><td colspan=3 background='<?=$gnu_path?>image/line_width.gif'></td></tr>

<?
// 보여주기

if(mysql_num_rows($result) != 0) {

    while($row = mysql_fetch_assoc($result)) {
        $comment = "";
        $atag_comment = "";
        if ($row[wr_comment] > 0) {
            $comment = "<span style='font-size:8pt;'>[c]</span> ";
            $atag_comment = "#c{$row[wr_id]}";
        }

        $commentcnt = "";
        if ($row[wr_commentcnt] > 0)
            $commentcnt = "<font size=-2>({$row[wr_commentcnt]})</font>";
           
     

        $wr_name = gblayer($row[mb_id], $row[wr_name], $row[wr_email]);

        echo "<tr>";
        echo "<td width='120' align=''><font color=gray>["./*$row[bo_subject]*/$row[wr_datetime]."]</font></td>";
        echo "<td>&nbsp; <a href='./?doc=bbs/gnuboard.php?bo_table=$row[bo_table]&wr_id=$row[wr_parent_id]'>";
        echo "<font color=#222222>$comment{$row[wr_subject]} {$commentcnt}</font></a></td>";
        echo "<td width='55' align=center>$mb_icon$wr_name$admin_icon</td>";
        echo "</tr>";

        echo "<tr><td colspan=3 background='{$gnu_path}image/line_width.gif'></td></tr>";
    }
} else echo "<td height=25 align=center>등록된 글이 없습니다.</td>";

?>
</table>

</td>
</tr>
</table>

<?
mysql_free_result($result);
mysql_query("DROP TABLE tmp");




include($gnu_path."mbtail.php");

/*// 실행시간 측정
$run_time = get_microtime() - $begin_time;
echo($run_time); */

?>

댓글 전체

넘 감사합니다. ㅠㅠ
일케 간단한것을 ^^ 제가 초보라 전혀 언어를 몰라서 고생이 하늘을 찌르네요 . 루트님 언제나 명쾌한 답변감사합니다. 조만간 또 질문 들어갑니다. ^^;
좋은 하루되세요
> 추출시에 공지사항 즉 wr_notice가 -1이면 해당글을 추출하지 않아야
기존 select 조건문에  wr_notice가 -1이 아닌것만 셀렉트하면 되겠군요.

기존 where 조건문에 "and wr_notice != -1"을 추가하시면 될듯...
전체 9,564
그누3질답 내용 검색

회원로그인

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