게시판별 최신글 추출.. 정보
게시판별 최신글 추출..본문
안녕하세요..
몇 일전에 질문을 올렸었는데.. 답변이 없어가지고..
다시 질문을... 올려봅니다만..
이렇게.. 테이블별로.. 최신글을 추출해볼려고..
아래.. 팁에 올라온 소스를 이용해서 적용해봤는데요..
제목이.. 출력이 되지를 않습니다.. 목록은 나오는듯 합니다만..
뭐가 잘 못된건지.. 한번 훑어봐주셨으면 해서요^^;;;
답변 좀 꼭 부탁드리겠습니다..
수고하세요.
<?
// 전광판 추출
function latest_g($skin_dir="",$rows=10, $subject_len=30)
{
global $config;
global $g4;
// 전광판 추출
function latest_g($skin_dir="",$rows=10, $subject_len=30)
{
global $config;
global $g4;
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]";
$list = array();
//order by 랜덤하게, 필요시 주석풀고 배열에 값 넣어주고 아래 쿼리에 order by 와 how_order삽입할 것
//$stand=array("","","","","");
//$rand= time()%count($stand);
//$how_order="$stand[$rand]";
//$stand=array("","","","","");
//$rand= time()%count($stand);
//$how_order="$stand[$rand]";
$sql = " select a.*
from $g4[board_new_table] a, $g4[board_table] b
where
(a.bo_table = 'saseol' or
a.bo_table = 'kyoyook' or
a.bo_table = 'moonhwa' or
a.bo_table = 'kiup' or
a.bo_table = 'namseo_notice' or
a.bo_table = 'namseo_activity' or
a.bo_table = 'dongbuk_notice' or
a.bo_table = 'dongbuk_activity' ) and
a.bo_table = b.bo_table
";
$result = sql_query($sql);
for ($i=0; $row = sql_fetch_array($result); $i++)
{
$tmp_write_table = $g4[write_prefix] . $row[bo_table];
{
$tmp_write_table = $g4[write_prefix] . $row[bo_table];
if ($row[wr_id] == $row[wr_parent]) // 원글
{
{
$row2 = sql_fetch(" select wr_subject,wr_id from $tmp_write_table where wr_id = '$row[wr_id]' ");
$list[$i] = $row2;
$list[$i][bo_table] = $row[bo_table];
$list[$i][href] = "$g4[bbs_path]/board.php?bo_table=$row[bo_table]&wr_id=$row2[wr_id]";
$list[$i][wr_subject] = cut_str($row2[wr_subject], $subject_len, "…");
}
}
$list[$i] = $row2;
$list[$i][bo_table] = $row[bo_table];
$list[$i][href] = "$g4[bbs_path]/board.php?bo_table=$row[bo_table]&wr_id=$row2[wr_id]";
$list[$i][wr_subject] = cut_str($row2[wr_subject], $subject_len, "…");
}
}
ob_start();
include "$latest_skin_path/latest.skin.php";
$content = ob_get_contents();
ob_end_clean();
return $content;
}
?>
}
?>
댓글 전체
많은 query가 불필요해 보이지만....
사용한 스킨도 보여 주세요.
latest_g()는 별 이상이 없어 보입니다.
사용한 스킨도 보여 주세요.
latest_g()는 별 이상이 없어 보입니다.
사용하고자 하는 스킨은 이것인데..
이것뿐만아니라.. 다른 스킨들도 마찬가지로 출력이 안됩니다.
<?
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;}
</style>
<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);
}
// 스크롤러에 들어갈 내용들을 태그와 함께 넣어 줍니다
<?
//$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); //날짜표시형식변경
$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++;
}
}
?>
//-->
</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>
이것뿐만아니라.. 다른 스킨들도 마찬가지로 출력이 안됩니다.
<?
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;}
</style>
<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);
}
// 스크롤러에 들어갈 내용들을 태그와 함께 넣어 줍니다
<?
//$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); //날짜표시형식변경
$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++;
}
}
?>
//-->
</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>
올리신 latest_g()는 위 스킨하고는 무관하네요.
고쳐 볼 곳
//$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)); //제목 글자수자르기
#####윗줄을 $list[i][subject]= $row[wr_subject]; 로 고쳐 보세요.
고쳐 볼 곳
//$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)); //제목 글자수자르기
#####윗줄을 $list[i][subject]= $row[wr_subject]; 로 고쳐 보세요.
고맙습니다.. 그런데 안되는듯 합니다.
더 여쭤보기도 죄송하고^^;;
제가 알아봐야겠군요.. 수고하세요^^
더 여쭤보기도 죄송하고^^;;
제가 알아봐야겠군요.. 수고하세요^^
말씀 드린 부분 수정 후에 바로
어떤 결과가 나왔는지 적어 주시면
좋을 텐데요.
어떤 결과가 나왔는지 적어 주시면
좋을 텐데요.
음.. 네.. 전혀 변함없더군요..
어떻게 조치를 해야될지^^;;;;
어떻게 조치를 해야될지^^;;;;
아래 처럼 해서 sql문이 뭐가 나오는지 봐 주세요.
echo $sql = " select *
from {$g4[write_prefix]}{$bo_table}
where wr_comment >= 0
order by wr_id desc limit 0, $rows ";
echo $sql = " select *
from {$g4[write_prefix]}{$bo_table}
where wr_comment >= 0
order by wr_id desc limit 0, $rows ";
테이블이 존재하지 않는군요..
1146 : Table 'gynews.g4_write_' doesn't exist
이럴땐 어떻게 해야할지-_-.... 흠..
1146 : Table 'gynews.g4_write_' doesn't exist
이럴땐 어떻게 해야할지-_-.... 흠..