여러개의 게시판에서 최근 등록된 게시물을 뽑아오는거요~ 정보
그누보드 여러개의 게시판에서 최근 등록된 게시물을 뽑아오는거요~본문
조오기 밑에 이런 질문을 하신 분이 계신데...
저도 이런게 있었으면 하는데요
질문하신 분은 어느 정도 php를 아시는 분 같은데...전 전혀 그렇지 않거든요...
어케 하면 여러개의 게시판에 등록된 글 중에서 최근에 등록된 글만 뽑아서 화면에 띄울 수 있는지 가르쳐 주심 안 될까요?
저도 이런게 있었으면 하는데요
질문하신 분은 어느 정도 php를 아시는 분 같은데...전 전혀 그렇지 않거든요...
어케 하면 여러개의 게시판에 등록된 글 중에서 최근에 등록된 글만 뽑아서 화면에 띄울 수 있는지 가르쳐 주심 안 될까요?
댓글 전체
헐헐....
소스는 못알아먹겠는데....
되긴되네여 ㅋㅋㅋㅋ
소스는 못알아먹겠는데....
되긴되네여 ㅋㅋㅋㅋ
까만도둑님 ^^
정말 감사합니다...방금 적용시켜봤는데...
되요~^^ 정말 감사합니다..
정말 감사합니다...방금 적용시켜봤는데...
되요~^^ 정말 감사합니다..
tmp5 가 모예요?? 정말 하나도 모르죠??ㅠ.ㅠ
이것도 관계가 있는 건지 잘 모르겠는데요.. ilne 70 모가 있는지 봤더니..
$sql_limit = intval($limit/$테이블수) + 2;
이런게 있던데... 모가 뭔지 몰라서 일단 적어봤습니다..
이것도 관계가 있는 건지 잘 모르겠는데요.. ilne 70 모가 있는지 봤더니..
$sql_limit = intval($limit/$테이블수) + 2;
이런게 있던데... 모가 뭔지 몰라서 일단 적어봤습니다..
정말 감사합니다..바로 적용시켜 보았습니다..그런데..이런게 뜨는데요??
ㅠ.ㅠ 왜 그럴까요??
Warning: Division by zero in /wecan2/jemmy/www.jemmy.pe.kr/alllatest.php on line 70
SELECT * FROM tmp5 ORDER BY wr_datetime DESC LIMIT 10
1146 : Table 'user_jemmy.tmp5' doesn't exist
ㅠ.ㅠ 왜 그럴까요??
Warning: Division by zero in /wecan2/jemmy/www.jemmy.pe.kr/alllatest.php on line 70
SELECT * FROM tmp5 ORDER BY wr_datetime DESC LIMIT 10
1146 : Table 'user_jemmy.tmp5' doesn't exist
저하고 비슷한 고민(?)을 하시는군요^^; 아래 소스는 저도 여기서 구한 건데 약간 수정을 해서 쓰고 있는 겁니다. php를 전혀 모르신다니 원하시는 답이 될런지는 모르겠지만 일단 알려드립니다. 아래 소스를 저장해서 xxxx.php 라는 이름을 붙인 후, 원하시는 문서에 <? include "xxxx.php" ?> 라는 문구를 넣으시면 됩니다. 참고로 xxxx.php 는 당연히 그누보드 디렉토리 안에 있어야 합니다.
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
define("_DOCTYPE_", "NONE");
include("./lib/latest.lib.php");
$begin_time = get_microtime();
?>
<?
$gr_id = ""; //여기에서 그룹을 설정해 주시면 됩니다. 지금은 설정안한 상태(모든 게시판을 다 불러옴)
$limit = "10"; // 쿼리에서 limit 로 뽑아올 갯수.
// TEMPORARY TABLE MAKE
$tmp_make = mysql_query("create temporary table tmp5 (
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 = '$gr_id'
order by b.gr_id, a.bo_table ";
$result = sql_query($sql);
$테이블수 = mysql_num_rows($result);
$sql_limit = intval($limit/$테이블수) + 2;
// BOARD 별로 게시판 돌면서 검색한다
while($row = mysql_fetch_array($result)) {
$tbl5 = "{$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_content,
a.wr_comment,
a.wr_commentcnt,
a.wr_file1,
a.wr_datetime,
b.mb_icon
from $tbl5 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 $tbl5
where wr_comment = 0 and wr_parent_id = '$row2[wr_parent_id]' ";
$row3 = sql_fetch_array($sql3);
$wr_subject = $row3[wr_subject];
$wr_content = $row3[wr_content];
$wr_file1 = $row2[wr_file1];
} else {
$wr_subject = $row2[wr_subject];
$wr_content = $row2[wr_content];
}
sql_query("INSERT tmp5 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_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]'
");
}
if (@preg_match($cfg[image_extension], $row2[wr_file1])) {
$list[file_image1] = "./data/file/{$row[bo_table]}/" . $row2[wr_file1];
}
if (@preg_match($cfg[image_extension], $row2[wr_file2])) {
$list[file_image2] = "./data/file/{$row[bo_table]}/" . $row2[wr_file2];
}
mysql_free_result($result2);
}
mysql_free_result($result);
?>
<?
// TEMPORARY 테이블 정보 가져오기
$result = sql_query("SELECT * FROM tmp5 ORDER BY wr_datetime DESC LIMIT $limit");
// 보여주기
if(mysql_num_rows($result) != 0) {
$i = 0;$j = 0;
while($row = mysql_fetch_assoc($result)) {
$wr_name = gblayer($row[mb_id], $row[wr_name], $row[wr_email]);
$date=substr($row[wr_datetime],5,5);
$row[wr_subject]=cut_str($row[wr_subject], 50);
$row[wr_content]=cut_str($row[wr_content], 150);
if($i==0) {
echo "";
}
echo "
<table cellpadding=0 cellspacing=0 border=0>
<tr><td>
<font style=color:#999999;font-size:8pt;>[$date]</font>
<a href='./?doc=$cfg[bbs_dir]/gnuboard.php&bo_table=$row[bo_table]' style=color:#008080;><b>$row[bo_subject]</b></a> ::
<a href='./?doc=$cfg[bbs_dir]/gnuboard.php&bo_table=$row[bo_table]&wr_id=$row[wr_parent_id]&ca_id=1'>
$row[wr_subject]</a>
<font style=color:#a9cc00;font-size:8pt;font-family:tahoma;>[$row[wr_commentcnt]]</font>
</table>
";
$i++;
if($i==5) {
echo "";
$i = 0; $j++;
}
}
}
?>
<?
mysql_free_result($result);
mysql_query("DROP TABLE tmp5");
?>
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
define("_DOCTYPE_", "NONE");
include("./lib/latest.lib.php");
$begin_time = get_microtime();
?>
<?
$gr_id = ""; //여기에서 그룹을 설정해 주시면 됩니다. 지금은 설정안한 상태(모든 게시판을 다 불러옴)
$limit = "10"; // 쿼리에서 limit 로 뽑아올 갯수.
// TEMPORARY TABLE MAKE
$tmp_make = mysql_query("create temporary table tmp5 (
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 = '$gr_id'
order by b.gr_id, a.bo_table ";
$result = sql_query($sql);
$테이블수 = mysql_num_rows($result);
$sql_limit = intval($limit/$테이블수) + 2;
// BOARD 별로 게시판 돌면서 검색한다
while($row = mysql_fetch_array($result)) {
$tbl5 = "{$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_content,
a.wr_comment,
a.wr_commentcnt,
a.wr_file1,
a.wr_datetime,
b.mb_icon
from $tbl5 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 $tbl5
where wr_comment = 0 and wr_parent_id = '$row2[wr_parent_id]' ";
$row3 = sql_fetch_array($sql3);
$wr_subject = $row3[wr_subject];
$wr_content = $row3[wr_content];
$wr_file1 = $row2[wr_file1];
} else {
$wr_subject = $row2[wr_subject];
$wr_content = $row2[wr_content];
}
sql_query("INSERT tmp5 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_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]'
");
}
if (@preg_match($cfg[image_extension], $row2[wr_file1])) {
$list[file_image1] = "./data/file/{$row[bo_table]}/" . $row2[wr_file1];
}
if (@preg_match($cfg[image_extension], $row2[wr_file2])) {
$list[file_image2] = "./data/file/{$row[bo_table]}/" . $row2[wr_file2];
}
mysql_free_result($result2);
}
mysql_free_result($result);
?>
<?
// TEMPORARY 테이블 정보 가져오기
$result = sql_query("SELECT * FROM tmp5 ORDER BY wr_datetime DESC LIMIT $limit");
// 보여주기
if(mysql_num_rows($result) != 0) {
$i = 0;$j = 0;
while($row = mysql_fetch_assoc($result)) {
$wr_name = gblayer($row[mb_id], $row[wr_name], $row[wr_email]);
$date=substr($row[wr_datetime],5,5);
$row[wr_subject]=cut_str($row[wr_subject], 50);
$row[wr_content]=cut_str($row[wr_content], 150);
if($i==0) {
echo "";
}
echo "
<table cellpadding=0 cellspacing=0 border=0>
<tr><td>
<font style=color:#999999;font-size:8pt;>[$date]</font>
<a href='./?doc=$cfg[bbs_dir]/gnuboard.php&bo_table=$row[bo_table]' style=color:#008080;><b>$row[bo_subject]</b></a> ::
<a href='./?doc=$cfg[bbs_dir]/gnuboard.php&bo_table=$row[bo_table]&wr_id=$row[wr_parent_id]&ca_id=1'>
$row[wr_subject]</a>
<font style=color:#a9cc00;font-size:8pt;font-family:tahoma;>[$row[wr_commentcnt]]</font>
</table>
";
$i++;
if($i==5) {
echo "";
$i = 0; $j++;
}
}
}
?>
<?
mysql_free_result($result);
mysql_query("DROP TABLE tmp5");
?>