sql은 초짜라서.. > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

sql은 초짜라서.. 정보

sql은 초짜라서..

본문

최근게시물을 뽑아오는 아래 sql문에서요 memo라는 게시판을 제외하고 뽑을려면 어디를 어떻게 수정해야되요?
 
<?
function get_new_($rows, $maxstr)
{
 global $g4, $gr_id, $config;
 $sql_common = " from $g4[board_new_table] a, $g4[board_table] b, $g4[group_table] c
       where a.bo_table = b.bo_table and b.gr_id = c.gr_id and b.bo_use_search = '1' ";
 if ($gr_id)
  $sql_common .= " and b.gr_id = '$gr_id' ";
 if ($view == "w")
  $sql_common .= " and a.wr_id = a.wr_parent ";
 else if ($view == "c")
  $sql_common .= " and a.wr_id <> a.wr_parent ";
 $sql_order = " order by a.bn_id desc ";
 $sql = " select count(*) as cnt $sql_common ";
 $row = sql_fetch($sql);
 $total_count = $row[cnt];
// $rows = $config[cf_new_rows];
 $total_page  = ceil($total_count / $rows);  // 전체 페이지 계산
 if (!$page) $page = 1; // 페이지가 없으면 첫 페이지 (1 페이지)
// $from_record = ($page - 1) * $rows; // 시작 열을 구함
 $from_record = 0;  //*
/*
 $group_select = "<select name=gr_id id=gr_id onchange='select_change();'><option value=''>전체그룹";
 $sql = " select gr_id, gr_subject from $g4[group_table] order by gr_id ";
 $result = sql_query($sql);
 for ($i=0; $row=sql_fetch_array($result); $i++)
 {
  $group_select .= "<option value='$row[gr_id]'>$row[gr_subject]";
 }
 $group_select .= "</select>";
*/
 $list = array();
 $sql = " select a.*, b.bo_subject, c.gr_subject, c.gr_id
     $sql_common
     $sql_order
     limit $from_record, $rows ";
 $result = sql_query($sql);
 $a = "";
 for ($i=0; $row=sql_fetch_array($result); $i++)
 {
  $tmp_write_table = $g4[write_prefix] . $row[bo_table];
  if ($row[wr_id] == $row[wr_parent]) // 원글
  {
   $comment = "";
   $comment_link = "";
   $row2 = sql_fetch(" select * from $tmp_write_table where wr_id = '$row[wr_id]' ");
   $list[$i] = $row2;
   $name = get_sideview($row2[mb_id], cut_str($row2[wr_name], $config[cf_cut_name]), $row2[wr_email], $row2[wr_homepage]);
   // 당일인 경우 시간으로 표시함
   $datetime = substr($row2[wr_datetime],0,10);
   $datetime2 = $row2[wr_datetime];
   if ($datetime == $g4[time_ymd])
    $datetime2 = substr($datetime2,11,5);
   else
    $datetime2 = substr($datetime2,5,5);
  }
  else // 코멘트
  {
   $comment = "[코] ";
   $comment_link = "#c_{$row[wr_id]}";
   $row2 = sql_fetch(" select * from $tmp_write_table where wr_id = '$row[wr_parent]' ");
   $row3 = sql_fetch(" select mb_id, wr_name, wr_email, wr_homepage, wr_datetime from $tmp_write_table where wr_id = '$row[wr_id]' ");
   $list[$i] = $row2;
   $list[$i][mb_id] = $row3[mb_id];
//   $list[$i][wr_name] = $row3[wr_name];
//   $list[$i][wr_email] = $row3[wr_email];
//   $list[$i][wr_homepage] = $row3[wr_homepage];
//   $name = get_sideview($row3[mb_id], cut_str($row3[wr_name], $config[cf_cut_name]), $row3[wr_email], $row3[wr_homepage]);
//   // 당일인 경우 시간으로 표시함
   $datetime = substr($row3[wr_datetime],0,10);
   $datetime2 = $row3[wr_datetime];
   if ($datetime == $g4[time_ymd])
    $datetime2 = substr($datetime2,11,5);
   else
    $datetime2 = substr($datetime2,5,5);
  }
//  $list[$i][gr_id] = $row[gr_id];
//  $list[$i][bo_table] = $row[bo_table];
//  $list[$i][name] = $name;
  $list[$i][comment] = $comment;
  $list[$i][href] = "./board.php?bo_table=$row[bo_table]&wr_id=$row2[wr_id]{$comment_link}";
//  $list[$i][datetime] = $datetime;
  $list[$i][datetime2] = $datetime2;
//  $list[$i][gr_subject] = $row[gr_subject];
//  $list[$i][bo_subject] = $row[bo_subject];
  $list[$i][wr_subject] = $row2[wr_subject];
  $a[$i] = array(
   "wr_comment"=>get_text($list[$i][comment]),
   "wr_subject"=>get_text($list[$i][wr_subject]),
   "wr_subject_cut"=>get_text(cut_str($list[$i][wr_subject], $maxstr)),
   "wr_subject_href"=>$g4[bbs_path]."/board.php?bo_table=$row[bo_table]&wr_id=$row2[wr_id]{$comment_link}",
   "wr_date"=>$datetime2
   );
 }
 return $a;
};
  • 복사

댓글 전체

$sql_common = " from $g4[board_new_table],  $g4[board_table] b, $g4[group_table] c
      where a.bo_table = b.bo_table and b.gr_id = c.gr_id and b.bo_use_search = '1'
and  b.bo_table != 'memo' "

조금 효율적인 것은

$sql_common = " from $g4[board_new_table]
                        inner join $g4[board_table] b on a.bo_table = b.bo_table and b.bo_table != 'memo'
                        inner join $g4[group_table] c on b.gr_id = c.gr_id
      where b.bo_use_search = '1'  "
© SIRSOFT
현재 페이지 제일 처음으로