본문 바로가기
Coding/PHP

[PHP] 계층형 게시판 - 4. 리스트

by 하비삼 2015. 1. 30.

계층형 게시판 - 4. 리스트


 list.php


<?
include "dbconn.php";
 
 $total_sql = "SELECT count(*) FROM board ";
 $total_res = mysql_query($total_sql);
 $total = mysql_result($total_res,0,0);
 
 
 $pagenum = $_GET[pagenum];
 $page = 20; //페이지 당 게시물 수
 $pagesu = ceil($total / $page); // 전체 페이지 개수
 $start = $page * $pagenum; //시작위치

 $number = $total - ($pagenum * $page); // 게시물 번호


 $sql = "SELECT *,FROM_UNIXTIME(wdate) AS DATE FROM board ORDER BY notice DESC, family, orderby  LIMIT $start, $page";
 $res = mysql_query($sql);
 
 $notice_sql = "SELECT count(idx) FROM board WHERE notice = '1'";
 $notice_res = mysql_query($notice_sql);
 $notice = mysql_result($notice_res,0,0);

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" lang="utf8">

 <head>
  <title> </title>
 </head>
 <body >
 <table align='center' width="500" border="1">
  <tr>
   <td>번호</td>
   <td>제목</td>
   <td>글쓴이</td>
   <td>날짜</td>
   <td>조회수</td>
  </tr>
<?

/************************************게 시 글 ***********************************************/
 while($list = mysql_fetch_array($res)){
  
  $repl_sql = mysql_query("SELECT count(*) FROM replay WHERE bbs_no='".$list[idx]."'");
  $repl = mysql_result($repl_sql,0,0);

  if($list[notice] == 1){
   $header = "[알림]";
  }else if($list[header] == 2){
   $header = "[유머]";
  }else if($list[header] == 3){
   $header = "[기타]";
  }else{
   $header ="";
  } //머릿말

  if($list[step]){
   $re = "re :";
  }else{
   $re = "";
  } //답변글 일시 앞에 re 글자 표시

  $blank = str_repeat("&nbsp;&nbsp;", $list[step]); //단계에 따른 공백표시
?>

  <tr>
   <td>
   <?if($list[notice]=='1'){
   echo "공지";
  }else{
   echo $number;
  }//게시판 번호
  ?>
   </td>
   <td><a href = '/view.php?idx=<?=$list[idx]?>'><?=$blank?><?=$re?><?=$header?>&nbsp<?=$list[title]?></a>
   <?
    if($repl == '0'){

    }else {
     echo "[".$repl."]";
    }  //덧글갯수
   ?>
   </td>
   <td><?=$list[name]?></td>
   <td><?=$list[date]?></td>
   <td><?=$list[hit]?></td>
  </tr>
  
  <?
   $number--;
  }
/**************************************************************************************************************************/
  ?>

  <tr>
  <td colspan='4' align='center'>
<?

 $pagegroup = 5; //페이지 그룹 당 페이지 수
 $pageend = $pagestart + $pagegroup; // 페이지 그룹의 마지막 페이지
 $pagegroupnum = ceil(($pagenum + 1) / $pagegroup); // 현재의 페이지 그룹
 $pagestart = ($pagegroupnum - 1) * $pagegroup + 1; // 페이지 그룹의 첫 페이지
 $pageend = $pagestart + $pagegroup - 1; //페이지 그룹의 마지막 페이지

 $prevgroup = $pagegroupnum - 1; //이전 그룹
 $prevstart = ($prevgroup - 1) * $pagegroup; // 이젠 페이지 그룹의 첫 페이지
 echo $pagegroupnum.$pagenum;
 if($pagegroupnum != 1){
  //이전 페이지 이동
  echo "[<a href = '/list.php?pageum=$prevstart'>◀</a>]";
 }

 for ($i = $pagestart; $i<=$pageend; $i++)
 {
  if($i > $pagesu) {break;}
  $j = $i - 1;
  echo "[<a href='/list.php?pagenum=$j'>$i</a></b>]";
 }

 $nextgroup = $pagegroupnum + 1;
 $nextstart = ($nextgroup - 1) * $pagegroup;
 if($pagesu > ($nextstart + 1))
 { // 다음 페이지 이동
  echo "[<a href = '/list.php?pageum=$nextstart'>▶</a>]";
 }
?>

 

  </td>
  <td>
    <input type="button" value="글쓰기" onclick="location.href='/write.php?type=write'">
  </td>
  </tr>
 </table>

 </body>
 </html>



반응형