본문 바로가기

study

php 게시판 리스트

  1. <?
  2. //DB에 연결하는 부분입니다. 항상 반복되는 부분이니 꼭 암기!!!
  3. mysql_connect("localhost", "phpbbs", "phpbbs") or die (mysql_error());
  4. mysql_select_db("itmembers");
  5.  
  6. //게시판 목록보기에 필요한 각종 변수 초기값을 설정합니다.
  7. $tablename="bbs"; //테이블 이름
  8. if($page == '') $page = 1; //페이지 번호가 없으면 1
  9. $list_num = 10; //한 페이지에 보여줄 목록 갯수
  10. $page_num = 10; //한 화면에 보여줄 페이지 링크(묶음) 갯수
  11. $offset = $list_num*($page-1); //한 페이지의 시작 글 번호(listnum 수만큼 나누었을 때 시작하는 글의 번호)
  12.  
  13. //전체 글 수를 구합니다. (쿼리문을 사용하여 결과를 배열로 저장하는 일반적 인 방법)
  14. $query="select count(*) from $tablename"; // SQL 쿼리문을 문자열 변수에 일단 저장하고
  15. $result=mysql_query($query) or die (mysql_error()); // 위의 쿼리문을 실제로 실행하여 결과를 result에 대입
  16. $row=mysql_fetch_row($result); //위 결과 값을 하나하나 배열로 저장합니다 .
  17. $total_no=$row[0]; //배열의 첫번째 요소의 값, 즉 테이블의 전체 글 수를 저장합니다.
  18.  
  19. //전체 페이지 수와 현재 글 번호를 구합니다.
  20. $total_page=ceil($total_no/$list_num); // 전체글수를 페이지당글수로 나눈 값의 올림 값을 구합니다.
  21. $cur_num=$total_no - $list_num*($page-1); //현재 글번호
  22.  
  23. //bbs테이블에서 목록을 가져옵니다. (위의 쿼리문 사용예와 비슷합니다 .)
  24. $query="select * from $tablename order by number desc limit $offset, $list_num"; // SQL 쿼리문
  25. $result=mysql_query($query) or die (mysql_error()); // 쿼리문을 실행 결과
  26. //쿼리 결과를 하나씩 불러와 실제 HTML에 나타내는 것은 HTML 문 중간에 삽입합니다.
  27. ?>
  28.  
  29. <html>
  30. <head>
  31. <meta http-equiv=content-type content=text/html; charset=euc-kr>
  32. <title>글목록보기</title>
  33. <STYLE TYPE=text/css>
  34. BODY,TD,SELECT,input,DIV,form,TEXTAREA,center,option,pre,blockquote {font-family:굴림;font-size:9pt;color:#555555;}
  35. A:link    {color:black;text-decoration:none;}
  36. A:visited {color:black;text-decoration:none;}
  37. A:active  {color:black;text-decoration:none;}
  38. A:hover  {color:gray;text-decoration:none;}
  39. </STYLE>
  40. </head>
  41. <body background=./images/body_bg.gif>
  42. <img src=./images/maintitle.gif>
  43. <table border=1 cellspacing=0 width=680 bordercolordark=white bordercolorlight=#999999>
  44.     <tr>
  45.         <td width=30 bgcolor=#CCCCCC>
  46.             <p align=center>no</p>
  47.         </td>
  48.         <td bgcolor=#CCCCCC width=490>
  49.             <p align=center>subject</p>
  50.         </td>
  51.         <td width=60 bgcolor=#CCCCCC>
  52.             <p align=center>name</p>
  53.         </td>
  54.         <td width=70 bgcolor=#CCCCCC>
  55.             <p align=center>date</p>
  56.         </td>
  57.         <td width=30 bgcolor=#CCCCCC>
  58.             <p align=center>hit</p>
  59.         </td>
  60.     </tr>
  61.  
  62. <?
  63. while ($array=mysql_fetch_array($result)) {
  64.  
  65.         $date=date("Y/m/d", $array[writetime]); //글쓴시각을 Y/m/d 형식에 맞게 문자열로 바꿉니다 .
  66.  
  67.         echo "
  68.     <tr>
  69.         <td width=30>
  70.             <p align=center>$cur_num</p>
  71.         </td>
  72.         <td width=490>
  73.             <p>$array[subject]< /p>
  74.         </td>
  75.         <td width=60>
  76.             <p align=center>$array[name]</p>
  77.         </td>
  78.         <td width=70>
  79.             <p align=center>$date</p>
  80.         </td>
  81.         <td width=30>
  82.             <p align=center>$array[count]</p>
  83.         </td>
  84.     </tr> ";
  85.  
  86.         $cur_num --;
  87.  
  88. }
  89. ?>
  90.     <tr>
  91.         <td width=100% colspan=5>
  92.  
  93. <?
  94. //여기서부터 각종 페이지 링크
  95. //먼저, 한 화면에 보이는 블록($page_num 기본값 이상일 때 블록으로 나뉘어짐 )
  96. $total_block=ceil($total_page/$page_num);
  97. $block=ceil($page/$page_num); //현재 블록
  98.  
  99. $first=($block-1)*$page_num; // 페이지 블록이 시작하는 첫 페이지
  100. $last=$block*$page_num; //페이지 블록의 끝 페이지
  101.  
  102. if($block >= $total_block) {
  103.         $last=$total_page;
  104. }
  105.  
  106. echo "
  107.                 &nbs p;       <p align=center>";
  108. //[처음][*개앞]
  109. if($block > 1) {
  110.         $prev=$first-1;
  111.         echo "<a href='list.php?page=1'>[처음 ]</a>&nbsp; ";
  112.         echo "<a href='list.php?page=$prev'>[$page_num 개 앞]</a>";
  113. }
  114.  
  115. //[이전]
  116. if($page > 1) {
  117.         $go_page=$page-1;
  118.         echo "  <a href='list.php?page=$go_page'>[이전 ]</a>&nbsp;       ";
  119. }
  120.  
  121. //페이지 링크
  122. for ($page_link=$first+1;$page_link<=$last;$page_link++) {
  123.         if($page_link==$page) {
  124.                 echo "<font color=green><b>$page_link</b></font>";
  125.         }
  126.         else {
  127.                 echo "<a href='list.php?page=$page_link'>[$page_link]</a>";
  128.         }
  129. }
  130.  
  131. //[다음]
  132. if($total_page > $page) {
  133.         $go_page=$page+1;
  134.         echo "&nbsp;<a href='list.php?page=$go_page'>[다음]</a>";
  135. }
  136.  
  137. //[*개뒤][마지막]
  138. if($block < $total_block) {
  139.         $next=$last+1;
  140.         echo "<a href='list.php?page=$netxt'>[$page_num 개 뒤]</a>&nbsp;";
  141.         echo "<a href='list.php?page=$total_page'>[마지막]</a></p>";
  142. }
  143.  
  144. ?>
  145.         </td>
  146.     </tr>
  147.     <tr>
  148.         <td width=100% colspan=5>
  149.             <p align=center><a href='write.php'>[글쓰기]</a></p>
  150.         </td>
  151.     </tr>
  152. </table>
  153. </body>
  154. </html>

'study' 카테고리의 다른 글

jqurey on 이벤트에 액션  (0) 2017.02.05
jquery input 추가 제거 하기  (0) 2017.02.05
PHP $_SERVER['PHP_SELF'] 취약점  (0) 2017.01.21
substr사용법  (0) 2017.01.21
mysql 특정 문자열 개수 구하기  (0) 2017.01.21