그룹최신글문의합니다. 정보
그룹최신글문의합니다.본문
그룹최신글을 조금 개조해서 사용하는데 원하는대로 되지 않네요.
wr_1를 기간제로 사용하고 있습니다.
4개의 최근글이 나오는데 wr_1 날짜 적용된 글만나옵니다.
이글들이 랜덤으로 썩여서 나와야 대는데 게시판순서대로 나오네요 ㅠㅠ
$list= array_slice($list, 1, $rows); 요놈이 문제인거 같기도 하고..
썩기긴 썩기는데 게시판 순서대로 썩여 버려서 4개의 글이면 1번게시판 2번게시판만 섞여서 나오네요..
해결방안이 없을까요
function latest_wr2($skin_dir="", $gr_id, $rows=10, $subject_len=40, $wr="")
{
global $config;
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 bo_table from {$g4['board_table']} where gr_id='$gr_id'";
$ress = sql_query($sql);
for($i=0, $ii=0; $board=sql_fetch_array($ress); $ii++)
{
$tmp_write_table = $g4['write_prefix'] . $board['bo_table']; # 게시판 테이블 전체이름
// wr 로 랜덤정렬
if ($wr == "1"){
$sql = " select * from $tmp_write_table where wr_1 > 0 && wr_8 > '$g4[time_ymdhis]' order by rand() limit 0, $rows ";
} else if ($wr == "2"){
$sql = " select * from $tmp_write_table where wr_2 > 0 && wr_8 > '$g4[time_ymdhis]' order by rand() limit 0, $rows ";
} else if ($wr == "3"){
$sql = " select * from $tmp_write_table where wr_3 > 0 && wr_8 > '$g4[time_ymdhis]' order by rand() limit 0, $rows ";
} else {
$sql = " select * from $tmp_write_table where wr_comment > -1 order by wr_id limit 0, $rows ";
}
//explain($sql);
$result = sql_query($sql);
for ($i==0; $row=sql_fetch_array($result); $i++)
$list[$i] = get_list($row, $board, $latest_skin_path, $subject_len);
}
$list= array_slice($list, 1, $rows);
ob_start();
include "$latest_skin_path/latest.skin.php";
$content = ob_get_contents();
ob_end_clean();
return $content;
}
wr_1를 기간제로 사용하고 있습니다.
4개의 최근글이 나오는데 wr_1 날짜 적용된 글만나옵니다.
이글들이 랜덤으로 썩여서 나와야 대는데 게시판순서대로 나오네요 ㅠㅠ
$list= array_slice($list, 1, $rows); 요놈이 문제인거 같기도 하고..
썩기긴 썩기는데 게시판 순서대로 썩여 버려서 4개의 글이면 1번게시판 2번게시판만 섞여서 나오네요..
해결방안이 없을까요
function latest_wr2($skin_dir="", $gr_id, $rows=10, $subject_len=40, $wr="")
{
global $config;
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 bo_table from {$g4['board_table']} where gr_id='$gr_id'";
$ress = sql_query($sql);
for($i=0, $ii=0; $board=sql_fetch_array($ress); $ii++)
{
$tmp_write_table = $g4['write_prefix'] . $board['bo_table']; # 게시판 테이블 전체이름
// wr 로 랜덤정렬
if ($wr == "1"){
$sql = " select * from $tmp_write_table where wr_1 > 0 && wr_8 > '$g4[time_ymdhis]' order by rand() limit 0, $rows ";
} else if ($wr == "2"){
$sql = " select * from $tmp_write_table where wr_2 > 0 && wr_8 > '$g4[time_ymdhis]' order by rand() limit 0, $rows ";
} else if ($wr == "3"){
$sql = " select * from $tmp_write_table where wr_3 > 0 && wr_8 > '$g4[time_ymdhis]' order by rand() limit 0, $rows ";
} else {
$sql = " select * from $tmp_write_table where wr_comment > -1 order by wr_id limit 0, $rows ";
}
//explain($sql);
$result = sql_query($sql);
for ($i==0; $row=sql_fetch_array($result); $i++)
$list[$i] = get_list($row, $board, $latest_skin_path, $subject_len);
}
$list= array_slice($list, 1, $rows);
ob_start();
include "$latest_skin_path/latest.skin.php";
$content = ob_get_contents();
ob_end_clean();
return $content;
}
댓글 전체
두개의 테이블의 조합이 같다면, 테이블 두개를 합쳐서 쿼리를 던지시는 방법을 사용하시는게 어떨까요.
$ress = sql_query($sql);
여기서 bo_table 값을 전체적으로 빼오는것이니 이걸 한번 더 돌려서 조합할 테이블의 값을 만드는 겁니다.
ex) select * from
g4_write_notice, g4_write_board
where wr_1 > 0 && wr_8 > '$g4[time_ymdhis]' order by rand() limit 0, $rows
테이블 JOIN 쪽을 살펴 보시면 쉽게 해결하실 수 있으리라 생각합니다.
$ress = sql_query($sql);
여기서 bo_table 값을 전체적으로 빼오는것이니 이걸 한번 더 돌려서 조합할 테이블의 값을 만드는 겁니다.
ex) select * from
g4_write_notice, g4_write_board
where wr_1 > 0 && wr_8 > '$g4[time_ymdhis]' order by rand() limit 0, $rows
테이블 JOIN 쪽을 살펴 보시면 쉽게 해결하실 수 있으리라 생각합니다.
답글 감사합니다.
제가 초보라서 제작의뢰에 남겼습니다 ㅜㅠ
제가 초보라서 제작의뢰에 남겼습니다 ㅜㅠ