최신글 자동갱신 하는법

최신글 자동갱신 하는법

QA

최신글 자동갱신 하는법

본문

제가 달력을 이용한 일정게시판을 만들었는데요,, 이 게시판에서는 그날의 일정만 보여주도록 만들었습니다. 예를들어 22일이면 22일에 저장된 글만 나오게 만들었는데요

 

최신글에서 이 게시판을 불러오면 해당 날짜에 맞게 자동으로 갱신되지않고 수동으로 서버에 계속 올려줘야 날짜가 변경되더군요.. 그래서 매일 해당 게시판처럼 자동으로 갱신되게 하려면 어떻게 해야하나요??

<최신글>


<?php for ($i=0; $i<count($list); $i++) {  ?>
<?php echo substr($list[$i]['wr_2'],0,4).".".substr($list[$i]['wr_2'],4,2).".".substr($list[$i]['wr_2'],6,2); ?></div>
      <?php
	  $str1 = $list[$i]['wr_content'];
	  $str2 = $list[$i]['wr_3'];
            echo "<a href=\"".$list[$i]['href']."\">";
				echo str_replace(',', '<br>', $str1);
				echo str_replace(',', '<br>', $str2);
            echo "</a>";
     ?>
    <?php }  ?>
    <?php if (count($list) == 0) { //게시물이 없을 때  ?>
    <div>게시물이 없습니다.</div>
    <?php }  ?>

<게시판>


...
<?
$cday = 1;
$sel_mon = sprintf("%02d",$month);
	
$query = "SELECT * FROM $write_table WHERE left(wr_1,6) <= '$year$sel_mon' and left(wr_2,6) >= '$year$sel_mon' ORDER BY wr_id ASC";
$result = sql_query($query);
$j=0; // layer id
// 내용을 보여주는 부분
while ($row = sql_fetch_array($result)) {  // 제목글 뽑아서 링크 문자열 만들기..
  if( substr($row[wr_1],0,6) <  $year.$sel_mon ) {
	 $start_day =1; 
	 $start_day= (int)$start_day;
  } else {
	 $start_day = substr($row[wr_1],6,2);
     $start_day= (int)$start_day;
  }
 
  if( substr($row[wr_2],0,6) >  $year.$sel_mon ) {
	 $end_day = $lastday[$month];
	 $end_day= (int)$end_day;
  } else {
	 $end_day = substr($row[wr_2],6,2);
	 $end_day= (int)$end_day;
  }
 
  for ($i = $start_day ; $i <= $end_day;  $i++) {
 
    $j++; // layer ID
 
    if ($member[mb_level] < $board[bo_read_level]) {
      $showLayer="" ;
    } else { 
      $showLayer=" onmouseover=\"PopupShow('".$j."')\" onmouseout=\"PopupHide('".$j."')\" ";
    }
?>
<?
    $html = 0;
    if (strstr($row[wr_option], "html1"))
      $html = 1;
    else if (strstr($row[wr_option], "html2"))
      $html = 2;
      $viewlist = cut_str(conv_content($row[wr_content], $html),200,"…");
	  $viewdiner = cut_str(conv_content($row[wr_3], $html),200,"…");
?>
<?
		//오늘 스케줄 구하기
	if ($row[wr_id] != $sc_id && date('Ymd', strtotime($row[wr_1])) <= date(Ymd) && date('Ymd', strtotime($row[wr_2])) >= date(Ymd)) {
		
		$today_schedule .= "<div class='food_head'>".substr($row['wr_1'],4,2)." 월 ".substr($row['wr_1'],6,2)." 일 <img src='../images/icon_today.png'></div>";
 
		$str1 = $viewlist;
		$str2 = $viewdiner;
		
		$view1 = str_replace(',', '<br>', $str1);
		$view2 = str_replace(',', '<br>', $str2);
 
		$today_schedule .= "<a href='".G5_BBS_URL."/board.php?bo_table=$bo_table&year=$year&month=$month&wr_id=$row[wr_id]&sc_no=$sc_no'>".$view1."</a>";
		$today_schedule .= "<a href='".G5_BBS_URL."/board.php?bo_table=$bo_table&year=$year&month=$month&wr_id=$row[wr_id]&sc_no=$sc_no'>".$view2."</a>";
	}
		$sc_id = $row[wr_id];
    }
  }
  // 달력의 틀을 보여주는 부분
  $temp = 7- (($lastday[$month]+$dayoftheweek)%7);
  if ($temp == 7) $temp = 0;
     $lastcount = $lastday[$month]+$dayoftheweek + $temp;
  for ($iz = 1; $iz <= $lastcount; $iz++) { // 42번을 칠하게 된다.
    $bgcolor = "#ffffff";  // 쭉 흰색으로 칠하고
    if ($b_year==$year && $b_mon==$month && $b_day==$cday) $bgcolor = "#003876";   // 오늘날짜 표기
    if (($iz%7) == 1) echo ("<tr>"); // 주당 7개씩 한쎌씩을 쌓는다.
    if ($dayoftheweek < $iz  &&  $iz <= $lastday[$month]+$dayoftheweek)	{
	// 전체 루프안에서 숫자가 들어가는 셀들만 해당됨
	// 즉 11월 달에서 1일부터 30 일까지만 해당
	$daytext = "$cday";   // $cday 는 숫자 예> 11월달은 1~ 30일 까지
	//$daytext 은 셀에 써질 날짜 숫자 넣을 공간
	$daycontcolor = "" ; 
	$daycolor = ""; 
	if ($iz%7 == 1) $daycolor = "red"; // 일요일
	if ($iz%7 == 0) $daycolor = "blue"; // 토요일
	if ($b_year==$year && $b_mon==$month && $b_day==$cday) $daycolor = "white";
	// 여기까지 숫자와 들어갈 내용에 대한 변수들의 세팅이 끝나고 
	// 이제 여기 부터 직접 셀이 그려지면서 그 안에 내용이 들어 간다.
	echo ("<td width=$col_width height=$col_height bgcolor=$bgcolor valign=top>");
 
	$f_date = $year.sprintf("%02d",$month).sprintf("%02d",$cday);
 
	// 기념일 파일 내용 비교위한 변수 선언, 월과 일을 두자리 포맷으로 고정
	if (strlen($month) == 1) { 
		$monthp = "0".$month ;
	} else {
		$monthp = $month ; 
	}
	if (strlen($cday) == 1) {
		$cdayp = "0".$cday ;
	} else { 
		$cdayp = $cday ; 
	}
	$memday = $year.$monthp.$cdayp;
	$daycont = "" ;
	// 기념일(양력) 표시
	for($i=0 ; $i < sizeof($dayfile) ; $i++) {  // 파일 첫 행부터 끝행까지 루프
		$arrDay = explode("|", $dayfile[$i]);
		if($memday == $year.$arrDay[0]) {
			$daycont = $arrDay[1]; 
			$daycontcolor = $arrDay[2];
			if(substr($arrDay[2],0,3)=="red") $daycolor = "red"; // 공휴일은 날짜를 빨간색으로 표시
		}
	}
 
    if ($write_href) { 
      // $write_href (글쓰기 권한)이 있으면
      // 날짜를 클릭하면 글씨쓰기가 가능한 링크를 넣어서 출력하기
      echo "<a href='".G5_BBS_URL."/board.php?bo_table=$bo_table&year=$year&month=$month&wr_id=$row[wr_id]&sc_no=$sc_no'><font color='$daycolor'>$daytext</font></a>$moonday <font color='$daycontcolor'>$daycont</font>$blank $annivmoonday";
    } else { // 글쓰기 권한이 없으면 글쓰기 링크는 넣지 않고 그냥 숫자와 기념일 내용만 출력하기  
      echo "<a href='".G5_BBS_URL."/board.php?bo_table=$bo_table&year=$year&month=$month&wr_id=$row[wr_id]&sc_no=$sc_no'><font color='$daycolor'>$daytext</font></a>";
    }
    echo $html_day[$cday];
    echo ("</td>");  // 한칸을 마무리
    $cday++; // 날짜를 카운팅
  } 
  // 유효날짜가 아니면 그냥 회색을 칠한다.
  else { echo ("     <td width=$col_width height=$col_height bgcolor=#ffffff valign=top> </td>"); }
  if (($iz%7) == 0) echo ("  </tr>");
   
} // 반복구문이 끝남
 
?>
...

 

이 질문에 댓글 쓰기 :

답변 2

최신글 추출을 latest 스킨을 사용하시나요?

그렇다면 latest.lib.php 파일을 좀 수정해야할 필요가 있습니다.

그럴경우 제가 글로써 설명해드리기 어렵고, latest.lib.php 파일도 작업을해야하니..

 

최신글 추출부분만 따로 제작하는걸 추천해드립니다.

 

 

예제)

 

$ymd = date('Ymd');
$sql = " select * from 테이블명 where   left(wr_1,6) = '$ymd' ";
$result = sql_query($sql);

for($i=0; $i<$row=sql_fetch_array($result); $i++)  {

echo substr($row['wr_2'],0,4).".".substr($row['wr_2'],4,2).".".substr($row['wr_2'],6,2);

$str1 = $row['wr_content'];
$str2 = $row['wr_3'];
echo "<a href=\"".$row['href']."\">";
echo str_replace(',', '<br>', $str1);
echo str_replace(',', '<br>', $str2);
echo "</a>";

}

 

이런식으로 따로 쿼리로 추출.. 

진짜 죄송한데.. 테이블 명에 제가 사용하는 게시판 테이블이름이 g5_write_aa 라고가정했을때
g5_write_aa 를 넣었는데 공백으로 나오면 어떻게하나요..?? sql 외부접근도 풀어놓은상태입니다ㅜㅜ
혹시몰라 'g5_write_aa' 처럼 ''도 넣어봤는데도 공백만나옵니다..ㅜㅜ
<?php
$ymd = date('Ymd');
$sql = " select * from g5_write_aa where left(wr_1,6) = '$ymd' ";
$result = sql_query($sql);
for($i=0; $i<$row=sql_fetch_array($result); $i++)  {
?>
<?php echo substr($row['wr_1'],0,4).".".substr($row['wr_1'],4,2).".".substr($row['wr_1'],6,2); //제목 ?>

      <?php
  $str1 = $row['wr_content'];
  $str2 = $row['wr_3'];

            echo "<a href=\"".$row['href']."\">";
echo str_replace(',', '<br>', $str1);
echo str_replace(',', '<br>', $str2);
            echo "</a>";
    ?>

    <?php }  ?>

최신글 올려주신건  쿼리를 가지고 보여지는 부분이고

쿼리쪽을 봐야 알거같아요.

 

$ymd = date('Ymd');

$query = "SELECT * FROM $write_table WHERE left(wr_1,6) = '$ymd' ";


이런식의 쿼리가 있어야하겠죠..

음.. 아래 게시판에서 보여주는 부분도있는데 그곳에
$cday = 1;
$sel_mon = sprintf("%02d",$month);

$query = "SELECT * FROM $write_table WHERE left(wr_1,6) <= '$year$sel_mon' and left(wr_2,6) >= '$year$sel_mon' ORDER BY wr_id ASC";
라고 쿼리가 있긴하네용
최신글 쿼리문은
if (!G5_USE_CACHE || !file_exists($cache_file)) {
        $list = array();

        $sql = " select * from {$g5['board_table']} where bo_table = '{$bo_table}' ";
        $board = sql_fetch($sql);
입니다

답변을 작성하시기 전에 로그인 해주세요.
전체 16
QA 내용 검색

회원로그인

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