최신글 그룹추출 문제.. 정보
최신글 그룹추출 문제..본문
안녕하십니까..
다름이 아니고.. 최신글을 그룹으로 여러 테이블에서 추출할려고 합니다..
문제가 현재 꼭 쓰고자하는 스킨은.. 오리지 한 테이블에서만 추출이 되버립니다..
다른 최신글 스킨을 그룹으로 추출하면..
테이블이 여러개로 잘 출력이 됩니다만..
봐도 통 모르겠네요;;
답변 부탁드립니다.
수고하십시요.
---- 그룹추출 ----
<?
if (!defined('_GNUBOARD_')) exit;
/// 함수 정의 시작
if (!defined('_GNUBOARD_')) exit;
/// 함수 정의 시작
// 최신글 추출 - 선택한 그룹별로 원하는 수만큼 보여줌
function latest_group($skin_dir="", $gr_id, $rows=10, $subject_len=40, $category="", $orderby="")
{
global $config;
global $g4;
function latest_group($skin_dir="", $gr_id, $rows=10, $subject_len=40, $category="", $orderby="")
{
global $config;
global $g4;
$list = array();
$limitrows = $rows;
$limitrows = $rows;
$sqlgroup = " select bo_table, bo_subject from $g4[board_table] where gr_id = '$gr_id' and bo_use_search=1 order by bo_order_search";
$rsgroup = sql_query($sqlgroup);
$rsgroup = sql_query($sqlgroup);
if ($skin_dir)
$latest_skin_path = "$g4[path]/skin/latest/$skin_dir";
else
$latest_skin_path = "$g4[path]/skin/latest/$config[cf_latest_skin]";
$latest_skin_path = "$g4[path]/skin/latest/$skin_dir";
else
$latest_skin_path = "$g4[path]/skin/latest/$config[cf_latest_skin]";
for ($j=0, $k=0; $rowgroup=sql_fetch_array($rsgroup); $j++) {
$bo_table = $rowgroup[bo_table];
$bo_table = $rowgroup[bo_table];
// 테이블 이름구함
$sql = " select * from {$g4[board_table]} where bo_table = '$bo_table'";
$board = sql_fetch($sql);
$sql = " select * from {$g4[board_table]} where bo_table = '$bo_table'";
$board = sql_fetch($sql);
$tmp_write_table = $g4[write_prefix] . $bo_table; // 게시판 테이블 실제이름
// 옵션에 따라 정렬
$sql = "select * from $tmp_write_table where wr_is_comment = 0 ";
$sql .= (!$category) ? "" : " and ca_name = '$category' ";
$sql .= (!$orderby) ? " order by wr_id desc " : " order by $orderby desc, wr_id desc ";
$sql .= " limit $limitrows";
$sql = "select * from $tmp_write_table where wr_is_comment = 0 ";
$sql .= (!$category) ? "" : " and ca_name = '$category' ";
$sql .= (!$orderby) ? " order by wr_id desc " : " order by $orderby desc, wr_id desc ";
$sql .= " limit $limitrows";
$result = sql_query($sql);
for ($i=0; $row = sql_fetch_array($result); $i++, $k++) {
if(!$orderby) $op_list[$k] = $row[wr_datetime];
else {
$op_list[$k] = is_string($row[$orderby]) ? sprintf("%-256s", $row[$orderby]) : sprintf("%016d", $row[$orderby]);
$op_list[$k] .= $row[wr_datetime];
}
else {
$op_list[$k] = is_string($row[$orderby]) ? sprintf("%-256s", $row[$orderby]) : sprintf("%016d", $row[$orderby]);
$op_list[$k] .= $row[wr_datetime];
}
$list[$k] = get_list($row, $board, $latest_skin_path, $subject_len);
$list[$k][subject] = cut_str($list[$k][wr_subject], $subject_len);
}
}
if($k>0) array_multisort($op_list, SORT_DESC, $list);
if($k>$rows) array_splice($list, $rows);
}
}
if($k>0) array_multisort($op_list, SORT_DESC, $list);
if($k>$rows) array_splice($list, $rows);
ob_start();
include "$latest_skin_path/latest.skin.php";
$content = ob_get_contents();
ob_end_clean();
return $content;
}
/// 함수 정의 끝
?>
include "$latest_skin_path/latest.skin.php";
$content = ob_get_contents();
ob_end_clean();
return $content;
}
/// 함수 정의 끝
?>
---- 최근게시물 ----
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
?>
<style type="text/css">
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
?>
<style type="text/css">
DIV,blockquote {font-size:9pt; font-family:굴림; color:#666666; line-height:170%;}
A:link {color:666666;text-decoration:none;}
A:visited {color:666666;text-decoration:none;}
A:active {color:666666;text-decoration:none;}
A:hover {color:gray;text-decoration:none;}
A:visited {color:666666;text-decoration:none;}
A:active {color:666666;text-decoration:none;}
A:hover {color:gray;text-decoration:none;}
</style>
<script language="javascript">
<!--
//Math.random()
<script language="javascript">
<!--
//Math.random()
var scrollerheight=100; // 스크롤러의 세로
var html,total_area=0,wait_flag=true;
var bMouseOver = 1;
var scrollspeed = 1; // Scrolling 속도
var waitingtime = 3000; // 멈추는 시간
var s_tmp = 0, s_amount = 60;
var scroll_content=new Array();
var startPanel=0, n_panel=0, i=0;
function startscroll()
{ // 스크롤 시작
i=0;
for (i in scroll_content)
n_panel++;
n_panel = n_panel -1 ;
startPanel = Math.round(Math.random()*n_panel);
if(startPanel == 0)
{
i=0;
for (i in scroll_content)
insert_area(total_area, total_area++);
}
else if(startPanel == n_panel)
{
insert_area(startPanel, total_area);
total_area++;
for (i=0; i<startPanel; i++)
{
insert_area(i, total_area);
total_area++;
}
}
else if((startPanel > 0) || (startPanel < n_panel))
{
insert_area(startPanel, total_area);
total_area++;
for (i=startPanel+1; i<=n_panel; i++)
{
insert_area(i, total_area);
total_area++;
}
for (i=0; i<startPanel; i++)
{
insert_area(i, total_area);
total_area++;
}
}
window.setTimeout("scrolling()",waitingtime);
}
function scrolling(){ // 실제로 스크롤 하는 부분
if (bMouseOver && wait_flag)
{
for (i=0;i<total_area;i++){
tmp = document.getElementById('scroll_area'+i).style;
tmp.top = parseInt(tmp.top)-scrollspeed;
if (parseInt(tmp.top) <= -scrollerheight){
tmp.top = scrollerheight*(total_area-1);
}
if (s_tmp++ > (s_amount-1)*scroll_content.length){
wait_flag=false;
window.setTimeout("wait_flag=true;s_tmp=0;",waitingtime);
}
}
}
window.setTimeout("scrolling()",1);
}
function insert_area(idx, n){
html='<div style="left: 0px; width: 100%; position: absolute; top: '+(scrollerheight*n)+'px" id="scroll_area'+n+'">\n';
html+=scroll_content[idx]+'\n';
html+='</div>\n';
document.write(html);
}
var html,total_area=0,wait_flag=true;
var bMouseOver = 1;
var scrollspeed = 1; // Scrolling 속도
var waitingtime = 3000; // 멈추는 시간
var s_tmp = 0, s_amount = 60;
var scroll_content=new Array();
var startPanel=0, n_panel=0, i=0;
function startscroll()
{ // 스크롤 시작
i=0;
for (i in scroll_content)
n_panel++;
n_panel = n_panel -1 ;
startPanel = Math.round(Math.random()*n_panel);
if(startPanel == 0)
{
i=0;
for (i in scroll_content)
insert_area(total_area, total_area++);
}
else if(startPanel == n_panel)
{
insert_area(startPanel, total_area);
total_area++;
for (i=0; i<startPanel; i++)
{
insert_area(i, total_area);
total_area++;
}
}
else if((startPanel > 0) || (startPanel < n_panel))
{
insert_area(startPanel, total_area);
total_area++;
for (i=startPanel+1; i<=n_panel; i++)
{
insert_area(i, total_area);
total_area++;
}
for (i=0; i<startPanel; i++)
{
insert_area(i, total_area);
total_area++;
}
}
window.setTimeout("scrolling()",waitingtime);
}
function scrolling(){ // 실제로 스크롤 하는 부분
if (bMouseOver && wait_flag)
{
for (i=0;i<total_area;i++){
tmp = document.getElementById('scroll_area'+i).style;
tmp.top = parseInt(tmp.top)-scrollspeed;
if (parseInt(tmp.top) <= -scrollerheight){
tmp.top = scrollerheight*(total_area-1);
}
if (s_tmp++ > (s_amount-1)*scroll_content.length){
wait_flag=false;
window.setTimeout("wait_flag=true;s_tmp=0;",waitingtime);
}
}
}
window.setTimeout("scrolling()",1);
}
function insert_area(idx, n){
html='<div style="left: 0px; width: 100%; position: absolute; top: '+(scrollerheight*n)+'px" id="scroll_area'+n+'">\n';
html+=scroll_content[idx]+'\n';
html+='</div>\n';
document.write(html);
}
// 스크롤러에 들어갈 내용들을 태그와 함께 넣어 줍니다
<?
//$rows = "10"; // 자료가 숫자보다 작으면 안됩니다. - 숫자변경은 10이상 5의 배수로 하세요
$sql = " select *
from {$g4[write_prefix]}{$bo_table}
where wr_comment >= 0
order by wr_id desc limit 0, $rows ";
$result = sql_query($sql);
<?
//$rows = "10"; // 자료가 숫자보다 작으면 안됩니다. - 숫자변경은 10이상 5의 배수로 하세요
$sql = " select *
from {$g4[write_prefix]}{$bo_table}
where wr_comment >= 0
order by wr_id desc limit 0, $rows ";
$result = sql_query($sql);
$i = 0;$j = 0;
while($row = mysql_fetch_array($result)) {
$list[i] = $row;
$list[i][subject]=stripslashes(cut_str($row[wr_subject], 34)); //제목 글자수자르기
if($row[wr_datetime] >= date("Y-m-d H:i:s", time() - 24 * 3600)) {//새글표시---제목색상변경
$subject = "<font color=#95167C><b>{$list[i][subject]}</b></font>"; //새글에 색상/진하게 등등을 적용하시려면 요기에서 하세요
} else {
$subject = $list[i][subject]; //새글이 아닐경우 그냥 나타남
}
$date1 = substr($list[$i][datetime],0,10); //날짜표시형식변경
$list[i][subject]=stripslashes(cut_str($row[wr_subject], 34)); //제목 글자수자르기
if($row[wr_datetime] >= date("Y-m-d H:i:s", time() - 24 * 3600)) {//새글표시---제목색상변경
$subject = "<font color=#95167C><b>{$list[i][subject]}</b></font>"; //새글에 색상/진하게 등등을 적용하시려면 요기에서 하세요
} else {
$subject = $list[i][subject]; //새글이 아닐경우 그냥 나타남
}
$date1 = substr($list[$i][datetime],0,10); //날짜표시형식변경
$date = explode("-", $date1);
$year = $date[0];
$month = $date[1];
$day = $date[2];
$latest_date = $month."월".$day."일";
if($i==0) {
echo "scroll_content[".$j."]=\"";
}
// echo "<b>ㆍ</b><font color=#0080C0>[$latest_date]</font><a href='$g4[bbs_path]/board.php?bo_table=$board[bo_table]&wr_id=$row[wr_id]'> {$subject}</a><br>"; // 날짜출력
echo "<b>ㆍ</b><a href='$g4[bbs_path]/board.php?bo_table=$board[bo_table]&wr_id=$row[wr_id]'> {$subject}</a><br>";
$i++;
if($i==5) {
echo "\";\n\t";
$i = 0; $j++;
}
}
?>
if($i==0) {
echo "scroll_content[".$j."]=\"";
}
// echo "<b>ㆍ</b><font color=#0080C0>[$latest_date]</font><a href='$g4[bbs_path]/board.php?bo_table=$board[bo_table]&wr_id=$row[wr_id]'> {$subject}</a><br>"; // 날짜출력
echo "<b>ㆍ</b><a href='$g4[bbs_path]/board.php?bo_table=$board[bo_table]&wr_id=$row[wr_id]'> {$subject}</a><br>";
$i++;
if($i==5) {
echo "\";\n\t";
$i = 0; $j++;
}
}
?>
//-->
</script>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td width="100%">
<table border="0" cellpadding="0" cellspacing="0" width="100%" height="53">
<tr>
<td width="330" valign=top><div style="position: absolute; width: 330px; height: 100px; overflow:hidden;" onMouseover="bMouseOver=0" onMouseout="bMouseOver=1" id="scroll_image">
<script>
startscroll();
</script>
</div>
</td>
</tr>
</table>
</td>
</tr>
</table>
</script>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td width="100%">
<table border="0" cellpadding="0" cellspacing="0" width="100%" height="53">
<tr>
<td width="330" valign=top><div style="position: absolute; width: 330px; height: 100px; overflow:hidden;" onMouseover="bMouseOver=0" onMouseout="bMouseOver=1" id="scroll_image">
<script>
startscroll();
</script>
</div>
</td>
</tr>
</table>
</td>
</tr>
</table>
댓글 전체
킁..