특정그룹의게시판들에서 최신글추출실 공지사항글제거하고 뽑는부분좀 해결해주세요. 정보
그누보드 특정그룹의게시판들에서 최신글추출실 공지사항글제거하고 뽑는부분좀 해결해주세요.본문
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> <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> <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이면 해당글을 추출하지 않아야하는데 어제 밤새 헤매도 해결이 안보이네요
초보에게 서광을 비춰주세요 ^^
<?
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> <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> <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"을 추가하시면 될듯...
기존 select 조건문에 wr_notice가 -1이 아닌것만 셀렉트하면 되겠군요.
기존 where 조건문에 "and wr_notice != -1"을 추가하시면 될듯...