latest로 지정된 게시판에서만 최신글을 받고자 합니다.

latest로 지정된 게시판에서만 최신글을 받고자 합니다.

QA

latest로 지정된 게시판에서만 최신글을 받고자 합니다.

답변 3

본문

latest.jpg
 
위와 같은 페이지를 제작중인데요.
게시판은 6개로 notice와 news는 각각 하나씩의 게시판만 할당되기에
 
<?
//  최신글
$sql = " select bo_table, bo_subject from $g4[board_table] order by gr_id, bo_table ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
    // 이 함수가 바로 최신글을 추출하는 역할을 합니다.
    // 스킨은 입력하지 않을 경우 관리자 > 환경설정의 최신글 스킨경로를 기본 스킨으로 합니다.
    // 사용방법
    // latest(스킨, 게시판아이디, 출력라인, 글자수);
    echo latest("basic", $row['bo_table'], 10, 70);
    echo "<p>\n";
}
?>
 
에서 echo문만 남기고  $row['bo_table'] 대신 각 게시판 ID값을 넣어서 만들었습니다.
 
하지만 세번째 class 게시판은 class1~class4의 최신 게시물을 전부 불러와야 하는데요.
아직 웹프 시작한지 일주일밖에 안되서 좀 막막하네요;;
 
4개의 게시판 구분 없이 게시글을 업로드 시간순으로 정렬하고 class001~004중 어느 게시판에서 왔는지 게시물 제목 앞에 기입하고 싶습니다. 어떻게 해야 할까요? php 책같은거 보고 있는데 영 어렵네요 ㅠㅠ;

이 질문에 댓글 쓰기 :

답변 3

아 하나의 최신글에 4개의 게시판의 글을 출력한다는거군요......
 
/lib/latest.lib.php 에 추가하세요.
 
// 최신글 추출 (다중 테이블)
function latest_multi($skin_dir="", $bo_table1,$bo_table2,$bo_table3,$bo_table4, $rows=10, $subject_len=40, $options="")
{
    global $g4;
if ($skin_dir)
$latest_skin_path = "$g4[path]/skin/latest/$skin_dir";
else
$latest_skin_path = "$g4[path]/skin/latest/basic";
$list = array();
$sql = " select * from $g4[board_new_table] a, $g4[board_table] b
where a.bo_table = b.bo_table
      and a.bo_table in('$bo_table1', '$bo_table2', '$bo_table3', '$bo_table4')
      and a.wr_id = a.wr_parent
order by a.bn_id desc 
limit $rows ";
     
$result = sql_query($sql);
for ($i=0; $board=sql_fetch_array($result); $i++)
{
    $tmp_write_table = $g4[write_prefix] . $board[bo_table];
    $sql = "select * from $tmp_write_table where wr_id = '$board[wr_id]'";
    $result2 = sql_query($sql);
    $row2 = sql_fetch_array($result2);
   
    $list[$i] = get_list($row2, $board, $latest_skin_path, $subject_len);
    $list[$i][bo_table] = $board[bo_table];
    $list[$i][bo_subject] = $board[bo_subject];
}
ob_start();
include "$latest_skin_path/latest.skin.php";
$content = ob_get_contents();
ob_end_clean();
return $content;
}
 
 
출력은
<?=latest_multi('최신글스킨명', 게시판테이블명1,게시판테이블명2,게시판테이블명3,게시판테이블명4, 출력수,제목짤림수)  ?>
아 난 왜 이해가 안되는지

class라는 게시판그룹 내에 class_001~004까지 게시판이 4개가 있습니다.
각 게시판별로 각각 게시물이 올라오겠죠. 메인화면의 class부분에서 latest 함수로 이 4개 게시판의 최신 게시물을 동시에 받는다는 겁니다.

지금 저 상태에서는
<class>
[class_001]
최신게시물1
최신게시물2
...
[class_002]
최신게시물1
최신게시물2
...
[class_003]
최신게시물1
최신게시물2
...
하는 식으로 보여지게 되는데 이런 형태가 아니라 게시판 구분 없이 게시물이 올라온 시간에 따라서만 정렬하고 싶습니다. 예를 들면

<class>
[class_003]최신게시물1
[class_001]최신게시물1
[class_001]최신게시물2
[class_002]최신게시물1
[class_003]최신게시물2
[class_002]최신게시물2
....

이런 식으로요.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 10,637
© SIRSOFT
현재 페이지 제일 처음으로