여러개의 게시판에서 최근 등록된 게시물을 뽑아오는거요~ > 그누3질답

그누3질답

여러개의 게시판에서 최근 등록된 게시물을 뽑아오는거요~ 정보

그누보드 여러개의 게시판에서 최근 등록된 게시물을 뽑아오는거요~

본문

조오기 밑에 이런 질문을 하신 분이 계신데...
저도 이런게 있었으면 하는데요
질문하신 분은 어느 정도 php를 아시는 분 같은데...전 전혀 그렇지 않거든요...

어케 하면 여러개의 게시판에 등록된 글 중에서 최근에 등록된 글만 뽑아서 화면에 띄울 수 있는지 가르쳐 주심 안 될까요?
  • 복사

댓글 전체

tmp5 가 모예요?? 정말 하나도 모르죠??ㅠ.ㅠ

이것도 관계가 있는 건지 잘 모르겠는데요.. 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
저하고 비슷한 고민(?)을 하시는군요^^; 아래 소스는 저도 여기서 구한 건데 약간 수정을 해서 쓰고 있는 겁니다. 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");
?>
© SIRSOFT
현재 페이지 제일 처음으로