게시물 뽑아오기 했을때 페이지 나누는 방법좀 알려주세요.. > 그누3질답

그누3질답

게시물 뽑아오기 했을때 페이지 나누는 방법좀 알려주세요.. 정보

그누보드 게시물 뽑아오기 했을때 페이지 나누는 방법좀 알려주세요..

본문

예전에 질문을 한번 올렸는데.. 답변이 없었구.. 아직까지 해결을 못했네욤...ㅠㅠ
제가 공부를 안해서..ㅋ
페이지나누기가 아니더라도 뽑아온글이 총 몇개인지를 표시하는 방법이라도.. ^^
출근땜에..자야겠네욤..

=======================================================================================
아래의 소스는 "까만도둑"님이 올려주신 "전체게시판에서 공지사항 뽑아오기" 파일소스입니다.
이 소스의 내용대로 사용할경우 공지사항이 만약 100~ 또는 그 이상.. 1000건이 될수도 있구요..
그렇게 되면 한페이지에 모두 보여주게 되어 있자나요..

그래서 최근공지글부터 지정개수까지 보여주는것 까지는 했습니다.
그래서 10으로 지정하면 10개만 보여주는 식으로요.

하지만, 만약... 공지사항이 100개다 했을경우 100개의 공지사항을 다 보여주려고 합니다.
하지만 페이지로 나눠서 한페이지에 10개의 공지사항...즉 게시판의 페이지 숫자를 누르면 넘어가듯이요.

무슨 좋은 방법이 없을까요...
정말 어처구니 없는 질문을 드려서 죄송합니다.
====================================================================================
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가

define("_DOCTYPE_", "DESIGN");

$html_title = "공지사항 모음";
?>

<table width=95% cellpadding=3 cellspacing=0 align=center>
<tr><td height=1 background='./<?=$cfg[bbs_dir]?>/line.gif'></td></tr>
<tr><td  class='subject subjectbg ht'> <?=$html_title?></td></tr>
<tr><td height=1 background='./<?=$cfg[bbs_dir]?>/line.gif'></td></tr>
</table>
<p>

<table width=95% cellpadding=0 cellspacing=0 align=center>
<tr>
  <td width='' valign=top>

<?
$sql = " select bo_subject, bo_table
          from $cfg[table_board]
        where bo_use_search = '1'
        order by bo_order_search ";
$result = sql_query($sql);
while ($row = mysql_fetch_array($result)) {
  $tbl = "{$cfg[write_table_prefix]}{$row[bo_table]}";

  $sql2 = " select wr_id,
                    wr_parent_id,
                    mb_id,
                    wr_name,
                    wr_email,
                    wr_homepage,
                    wr_num,
                    wr_subject,
                    wr_comment,
                    wr_commentcnt,
                    wr_datetime,
                    wr_hit
              from $tbl
where wr_comment = '0' #코멘트가 아닌것을 찾는다.
              and wr_notice = '-1' #공지사항인것을 찾는다.
  order by wr_id desc ";

 
  $result2 = sql_query($sql2);
  for ($i = 0; $row2 = mysql_fetch_array($result2); $i++) {
      /*
      if ($row2[wr_comment] > 0) {
          $sql3 = " select wr_subject
                      from $tbl
                      where wr_comment = 0
                        and wr_parent_id = '$row2[wr_parent_id]' ";
          $row3 = sql_fetch($sql3);
          $wr_subject = $row3[wr_subject];
      } else {
          $wr_subject = $row2[wr_subject];
      }
      $wr_subject = get_text($wr_subject);
      */

  $wr_subject = get_text($row2[wr_subject]);
      if(!$ssort) {
          $key = $row2[wr_datetime] . $row[bo_table] . $row2[wr_id];
      } else if($ssort == "bo_table") {
          $key = $row[bo_table] . $row2[wr_datetime];
      } else if($ssort == "bo_subject") {
          $key = $row2[wr_subject] . $row2[wr_datetime];
      } else if($ssort == "wr_name") {
          $key = $row2[wr_name] . $row2[wr_datetime];
      } else if($ssort == "wr_datetime") {
          $key = $row2[wr_datetime] . $row2[wr_datetime];
      }
      $list[$key]->bo_subject = $row[bo_subject];
      $list[$key]->bo_table = $row[bo_table];
      $list[$key]->mb_id = $row2[mb_id];
      $list[$key]->mb_open = $row2[mb_open];
      $list[$key]->wr_id = $row2[wr_id];
      $list[$key]->wr_parent_id = $row2[wr_parent_id];
      $list[$key]->wr_email = $row2[wr_email];
      $list[$key]->wr_homepage = $row2[wr_homepage];
      $list[$key]->wr_name = get_text(cut_str($row2[wr_name],12));
      $list[$key]->wr_subject = get_text(cut_str($wr_subject,70,'…'));
      $list[$key]->wr_comment = $row2[wr_comment];
      $list[$key]->wr_commentcnt = $row2[wr_commentcnt];
      $list[$key]->wr_datetime = $row2[wr_datetime];
      $list[$key]->wr_hit = $row2[wr_hit];
  }
  mysql_free_result($result2);
}
mysql_free_result($result);

?>

<table width=100% border=0 cellspacing=0 cellpadding=0>
<tr><td colspan=4 height=1 background='./<?=$cfg[bbs_dir]?>/line.gif'></td></tr>
<tr class='subject subjectbg ht' align="center">
  <td><?=subject_sort_link('bo_table', $qstr2)?>게시판</td>
  <td><?=subject_sort_link('bo_subject', $qstr2)?>제목</td>
  <td><?=subject_sort_link('wr_name', $qstr2)?>작성자</td>
  <td><?=subject_sort_link('wr_datetime', $qstr2)?>작성일</td>
</tr>
<tr><td colspan=4 height=1 background='./<?=$cfg[bbs_dir]?>/line.gif'></td></tr>
<?
if (count($list) > 0) {

  $i=0;     
      if($sorder == "desc" ) {
          ksort($list);
      } else {
          krsort($list);
      }
      reset ($list);
      foreach ($list as $key=>$value) {
     
  $comment = "";
      $atag_comment = "";
      if ($value->wr_comment > 0) {
          $comment = "<span style='font-size:8pt;'>[c]</span> ";
          $atag_comment = "#c{$value->wr_id}";
      }

      $commentcnt = "";
      if ($value->wr_commentcnt > 0) {
          $commentcnt = "<font size=-2>({$value->wr_commentcnt})</font>";
      }

      $name = gblayer($value->mb_id, cut_str($value->wr_name,12), $value->wr_email, $value->wr_homepage);

      $value->bo_subject = cut_str($value->bo_subject, 20);

      $list = $i++%2;

      echo "<tr class='list$list ht' align=center>";
      echo "<td width=100><a href='./?doc=$cfg[bbs_dir]/gnuboard.php&bo_table=".$value->bo_table."'>".$value->bo_subject."</a></td>";
      echo "<td align=left>  <a href='./?doc=$cfg[bbs_dir]/gnuboard.php&bo_table=".$value->bo_table."&wr_id=".$value->wr_parent_id."$atag_comment'>$comment{$value->wr_subject}</a> {$commentcnt}</td>";
      echo "<td width=70> $name </td>";
      echo "<td width=70 align=center>[".substr($value->wr_datetime,2,8)."]</td>";
      //echo "<td width=60>{$value->wr_hit}</td>";
      echo "</tr>\n";

      //echo "<tr><td colspan=4 background='{$gnu_path}image/line_width.gif'></td></tr>\n";
  }
} else
  echo "<td height=100 align=center colspan=4>등록된 글이 없습니다.</td>";
?>
<tr><td colspan=4 height=1 background='./<?=$cfg[bbs_dir]?>/line.gif'></td></tr>
</table>

<p>
 
</td>
</tr>
</table>
  • 복사

댓글 전체

답변감사합니다.
까만도둑님의 방식으로 하면 한페이지에 다 보여지네요.
뽑아올게시물이 현재는 20~30건인데..
시간이 지날수록 뽑아올 게시물이 많아지는게 문제입니다.
한페이지에 200건정도를 보여주는건 시간이 조금 걸릴것 같구 자료를 찾기두 힘들것 같구요.
그래서 한페이지에 20개씩 보여주게끔 하려구 하는데.. 정말.. 도저히..제 ... 머리로는 안되네욤..  --ㅋ
제발..도와주세요.. ㅠㅠ  ..
해보지는 않았지만 root님께서 올리신 글이 있네요.

============================================================================

http://www.sir.co.kr/?doc=bbs/gnuboard.php&bo_table=tiptech&page=18&wr_id=1720

공지사항을 30개만 뽑고 싶으시다면 foreach 아래에 if 문을 하나 추가하세요.

 foreach ($list as $key=>$value) {
    if($i >= 30) break;        // 만약 $i의 값이 30보다 커거나 같다면 foreach문을 빠져나가라..

==========================================================================================
© SIRSOFT
현재 페이지 제일 처음으로