테스트 사이트 - 개발 중인 베타 버전입니다

최근게시물을 가져와서 그 중 답변이나 댓글이 있을경우 제외시키는 방법을 알려주세요~ 채택완료

파천황 10년 전 조회 5,519

최근게시물을 가져와서 그 중 답변이나 댓글이 있을경우 제외시키는 방법을 알려주세요~

 

Jos87님의 scroll 최근게시물 스킨을 사용중인데 해당 최근게시글 중에서 답변글이나 댓글이 달려있는 게시물은 제외를 시키는 방법을 알려주시면 감사하겠습니다.

</span></p><p><span class="member">​<?</span></p><p><span class="member">// 변수 설정
$out_bo_table = array("notice","photo","refer"); // 제외하고 싶은 게시판 이름을 적어주세요
$cur_subject = 18; // 제목 글자수</span></p><p><span class="member">$latest_sql = sql_query("select bo_table, wr_id, wr_parent from $g4[board_new_table] where bn_datetime like '{$g4[time_ymd]}%' order by bn_id desc limit 20");</span></p><p><span class="member">​</span></p><p><span class="member">// 공지를 제외하는 구문
$notice_sql= sql_query("select bo_table, bo_notice from ". $g4['board_table']);
while($row = sql_fetch_array($notice_sql)) {</span></p><p><span class="member"> $tnotice[$row['bo_table']] = trim($row['bo_notice']) != "" ? explode("\n" ,$row['bo_notice']) : '';
}
unset($row);</span></p><p><span class="member">$temp1 = array();</span></p><p><span class="member">// 댓글을 제외하고 뽑아온다.
while($row = sql_fetch_array($latest_sql)) {</span></p><p><span class="member"> $flag = $row['wr_id'] == $row['wr_parent'] ? true : false;</span></p><p><span class="member"> foreach($out_bo_table as $temp) {
  if($row['bo_table'] == $temp) $flag = false;
 }
 unset($temp);</span></p><p><span class="member"> if($flag) {</span></p><p><span class="member">  // 공지사항을 제외하는 구문
  if(is_array($tnotice[$row['bo_table']])) {</span></p><p><span class="member">   $flag2 = true;
   foreach($tnotice[$row['bo_table']] as $temp) if(trim($row['wr_id']) == trim($temp)) $flag2 = false;
   if($flag2) $temp1[] = $row;
  } else $temp1[] = $row;
 }
}</span></p><p><span class="member">​// 습관이라서 쓰고나고 필요없는 변수를 제거......
unset($tnotice);
unset($flag);
unset($flag2);
unset($temp);
unset($row);</span></p><p><span class="member">$right_rolling = "";</span></p><p><span class="member">if(is_array($temp1)) {
 foreach($temp1 as $temp) {</span></p><p><span class="member">  $array_new = sql_fetch("select wr_subject, wr_datetime, wr_name from ". $g4['write_prefix'].$temp['bo_table']. " where wr_id = '".$temp['wr_id']."'");
  $bo_name = sql_fetch("select bo_subject from ".$g4['board_table']." where bo_table = '". $temp['bo_table']. "'");</span></p><p><span class="member">  $diff = time() - strtotime($array_new['wr_datetime']);
  if($diff < 60) $nr_datetime = $diff . "초전";
  else if( $diff < 3600 && $diff > 59) $nr_datetime = round($diff/60). "분전";
  else if( 86400 > $diff && $diff > 3599 ) $nr_datetime = round($diff/3600). "시간전</span>";
  else $nr_datetime = substr($list['wr_datetime'],5,5);</span></p><p><span class="member">  $right_rolling .= "<li><div class=\"letiker\"><span class=\"subject_new\">ㆍ<a href=\"".$g4['path']."/bbs/board.php?bo_table=$temp[bo_table]&wr_id=$temp[wr_id]\"><b>". cut_str($array_new['wr_subject'], $cur_subject) . "</b></a></span><span class=\"tikinfo\">Q&A"."<span class=\"tikbar\"> | </span>" .$array_new['wr_name']. "</span></div><div class=\"ritiker\"><span class=\"timer\"></span>".$nr_datetime."</div></li>";
 }
} else $right_rolling = "자료가 없습니다.";
unset($array_new);
unset($bo_name);
unset($temp1);</span><span class="member">​</span></p><p><span class="member">?>

위 코드중에서 수정추가해야할 부분에 대해서 자세히 알려주시면 감사하겠습니다.

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트
10년 전

위의 소스 중에 39~46번째 줄의 내용을 다음과 같이 수정해보세요.

</p><p>$array_new = sql_fetch("select wr_subject, wr_datetime, wr_name from ". $g4['write_prefix'].$temp['bo_table']. " where wr_id = '".$temp['wr_id']."'"); //이 부분부터 아래와 같이 수정</p><p> </p><p>$array_new = sql_fetch("select wr_subject, wr_datetime, wr_name from ". $g4['write_prefix'].$temp['bo_table']. " where wr_reply = '' and wr_is_comment = 0 and wr_id = '".$temp['wr_id']."'");</p><p>if ($array_new) {</p><p>   $bo_name = sql_fetch("select bo_subject from ".$g4['board_table']." where bo_table = '". $temp['bo_table']. "'");</p><p>   $diff = time() - strtotime($array_new['wr_datetime']);</p><p>   if($diff < 60) $nr_datetime = $diff . "초전";</p><p>   else if( $diff < 3600 && $diff > 59) $nr_datetime = round($diff/60). "분전";</p><p>   else if( 86400 > $diff && $diff > 3599 ) $nr_datetime = round($diff/3600). "시간전</span>";</p><p>   else $nr_datetime = substr($list['wr_datetime'],5,5);</p><p>   $right_rolling .= "<li><div class=\"letiker\"><span class=\"subject_new\">ㆍ<a href=\"".$g4['path']."/bbs/board.php?bo_table=$temp[bo_table]&wr_id=$temp[wr_id]\"><b>". cut_str($array_new['wr_subject'], $cur_subject) . "</b></a></span><span class=\"tikinfo\">Q&A"."<span class=\"tikbar\"> | </span>" .$array_new['wr_name']. "</span></div><div class=\"ritiker\"><span class=\"timer\"></span>".$nr_datetime."</div></li>";</p><p>}</p><p>
 

 

다시 정리하자면

38번째 줄의    foreach($temp1 as $temp) {    부터

47번째 줄의    }    부분 안에 있는 내용을 위와 같이 수정하는 것입니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

10년 전

감사합니다~

잘 수정해서 적용했습니다.

 

다만 수정사항 03번줄에 조건절에서 wr_is_comment = 0 이부분에서 wr_comment = 0으로 수정했더니 코멘트 1개만 달려도 안나오더라구요.

그 차이점을 찾고 있습니다. 매번 사용은 하지만 잊어버리네요.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인