/ php / index / english dictionary

 회원가입 |  로그인

{[강의] 게시판 목록을 보여주는 부분입니다..}
( home ) 2004-08-16 23:37:40
 링크 1 : http://cafe.daum.net/phplove

http://cafe.daum.net/phplove 에 수록된 강좌








// board_list.php
젤중요한건 페이지주소가 이렇게 갑니다.
www.phplove.co.kr/board_list.php?code=board
$code=board는 중요. 뭐 말로 설명하기 좀 그렇지만. 따라하면 알게됩니다.물론 board는 생성한 테이블 이름을 적어주면 됩니다.
board_list.php를 board테이블에 있는 내용을 사용하겠습니다. 라는 내용이져..
######## 먼저 페이지 스크립트부분, 타이틀에 따라다니는 메뉴부분,하단
페이지 부분은 매번 페이지가 갈때마다 따라다니므로 include로 묶었습니다.

<?
############ 사용자의 브라우저에 전송되는 HTTP헤더를 이용하여 사용자가 요청한 췝페이지의 내용을 사용자의 시스템에 캐시로 남길수 있도록 허용할것인지 그 허용수줄을 조절하기 위해 설정합니다. 뭐 경고된페이지입니다.
if($SESSION_CACHE_LIMITER) { session_cache_limiter($SESSION_CACHE_LIMITER);
} else { session_cache_limiter('nocache, must-revalidate'); }
header("Pragma: no-cache");
header("Expires: 0");
session_start();

require_once("../html/include.header.php"); // 스크립트가 저장된 파일
require_once("../html/function.user.php");
$cfg_file = "../html/include.config.php";

if(file_exists($cfg_file)) { require($cfg_file);
} else { error("NOT_FOUND_CONFIG_FILE"); exit;}
$db = mysql_select_db($dbName);
if(!$db) { error("FAILED_TO_SELECT_DB"); exit;}
require_once("../html/menu.php"); // 상단 페이지가 저장된 파일

###### 게시물에 아무것도 등록이 되어있지 않다면 페이지수는 1로 정의하고 또 찾고하는 검색문자열이 없다면 전체 페이지 숫자를 알아냅니다.
$key_word 변수가 검색문자열 이 담긴 변수 뭐 그런거 있죠. 아래에 제목으로 찾던지 내용으로 찾던지. 그런 검색문자열입니다..

if(!$page){ $page=1 ;}
if($key_word == ""){$sql = "SELECT count(*) FROM $code ORDER BY fDate desc, fTitle";
}else if($key_word != ""){$sql = "SELECT count(*) FROM $code WHERE fTitle like '%$key_word%' or fContent like '%$key_word%' ORDER BY fDate desc, fTitle";}
$result = mysql_query($sql);
if (!$result) { error("QUERY_ERROR"); exit;}
###### 전체 레코드 수->얼마큼의 게시물이 등록됬는지 알수 있습니다
$total_record = mysql_result($result,0,0);
mysql_free_result($result);

####### 전체 페이지수를 알아냅니다. 예를 들어 게시물에 등록한 내용이 52개라면 그걸 $num_per_page(10개 정해준거 알죠)로 나누어서 ceil의 연산함수로 받아서페이지 수를 알아냅니다. 50를10으로 나누어ceil함수썼으니까 답은 6
그래서 첫페이지 수와 끝페이지 수를 계산합니다..
$total_page = ceil($total_record/$num_per_page);
if($total_record == 0) { $first = 1; $last = 0;
} else { $first = $num_per_page*($page-1); $last = $num_per_page*$page;}

####### 여긴 위에와 같지만 틀려진건 이제 레코드 수가 아닌 내용을 가져올수 있는 기반을 만든것입니다..

if($key_word == ""){$query = "SELECT * FROM $code ORDER BY fUid DESC, fThread LIMIT $first, $num_per_page";
}else if($key_word != ""){$query = "SELECT * FROM $code WHERE fTitle like '%$key_word%' or fContent like '%$key_word%' ORDER BY fUid DESC, fThread LIMIT $first, $num_per_page";}
$qry_result = mysql_query($query);
?>
<table border="0" width="770" cellspacing="0" cellpadding="0">
<tr>
<td width="100%" valign="top"></td>
</tr>
<tr>
<td width="100%" valign="top" align="center"><img border="0" src="../image/<?echo"$code"?>_title.gif"></td>
</tr>
</table>
<table bgcolor="white" width="770">
<tr>
<td align="left" width="25%"> <font color='#3399FF' size="2"><b>ⓝ</b></font> -> 새로운 글 <font color='gray'><b>ⓞ</b></font> -> 지난 글   <font color='#ff6600' size="2"><b>ⓐ</b></font> <font color='gray'><b>ⓐ</b></font> -> 답변 글 </td>
<td align="right" width="75%">
<a href="board_list.php?code=<?echo"$code"?>&page=<?echo"$var_page"?>&type=<?echo"$type"?>&key_word=<?echo"$key_word"?>&keyfield=<?echo"$keyfield"?>&key=<?echo"$encoded_key"?>"><img src="../image/board_first.gif" border="0" title="처음목록"></a>
<?
if($block > 1) { $var_page = $first_page;
echo("<a href="board_list.php?code=$code&page=$var_page&type=$type&key_word=$key_word&keyfield=$keyfield&key=$encoded_key"><img src="../image/board_pre10.gif" border="0" title="다음 목록10개"></a>");}
if ($page > 1) { $page_num = $page - 1;
echo("<a href="board_list.php?code=$code&page=$page_num&type=$type&key_word=$key_word&keyfield=$keyfield&key=$encoded_key"><img src="../image/board_next.gif" border="0" title="다음 목록"></a>");}
if ($total_record > $last) { $page_num = $page + 1;
echo("<a href="board_list.php?code=$code&page=$page_num&type=$type&key_word=$key_word&keyfield=$keyfield&key=$encoded_key"><img src="../image/board_pre.gif" border="0" title="이전 목록"></a>");}
if($block < $total_block) { $var_page = $last_page+1;
echo("<a href="board_list.php?code=$code&page=$var_page&type=$type&key_word=$key_word&keyfield=$keyfield&key=$encoded_key"><img src="../image/board_next10.gif" border="0" title="이전 목록 10개"></a>");
}?>
<a href="board_write.php?code=<?echo("$code")?>"><img src="../image/board_new.gif" border="0" title="글쓰기"></a>
<a href="<?echo("$mainpage")?>"><img src="../image/board_home.gif" border="0" title="홈으로 가기"></a>
</td>
</tr>
</table>
<table border="0" width="770" cellspacing="0" cellpadding="0">
<tr>
<td width="770" colspan="3"><img border="0" src="../image/board_background-1.gif" width="770" height="20"></td>
</tr>
<tr>
<td width="20" background="../image/board_background-4.gif" width="20" height="75"></td>
<td width="730" valign="top" class="bold_font">
<table border="0" width="100%">
<tr>
<td width="50" height="20" align="center" bgcolor="#EFEFEF">번 호</td>
<td width="430" height="20" align="center" bgcolor="#EFEFEF">제    목</td>
<td width="80" height="20" align="center" bgcolor="#EFEFEF">이  름</td>
<td width="50" height="20" align="center" bgcolor="#EFEFEF">첨부</td>
<td width="70" height="20" align="center" bgcolor="#EFEFEF">날  짜</td>
<td width="50" height="20" align="center" bgcolor="#EFEFEF">조회수</td>
</tr>
</table>
<?
$article_num = $total_record - $num_per_page*($page-1);

######### mysql_fetch_object 결과 레코드 세트에서 한행(레코드)를 객체의 형태로 가져옵니다.. 그래야 저장된 게시물 값을 while로 모두 가져와서 내용을 보여주면 됩니다...
while($qry_row = mysql_fetch_object($qry_result)) {
$var_idx = $qry_row->fIdx; // 자동증가되는 넘버값
$var_uid = $qry_row->fUid; // 아이디 값
$var_type = $qry_row->fType; // 게시물의 타입값
### addslashes()함수 반대되는 개념입니다. db에 저장된 문자열을 원래의 문자열로 되돌릴때 사용되는 함수 stripslashes함수
$var_title = stripslashes($qry_row->fTitle); // 게시물 제목
$var_img = $qry_row->fImg; // file업로드 될 이미지
$var_date = date("Y-m-d",$qry_row->fDate); 날짜
$var_img_tmp = explode("|%|",$var_img); 다중 파일업로드를 구현할려하는데 그 파일을 %로 기준을 해서 하나씩 불러들이기 위해 사용 아주유용한 함수 입니다..
$t = count($var_img_tmp);// 파일의 갯수
$var_name = $qry_row->fName; // 이름
$var_thread = $qry_row->fThread; // 답변인지
$var_click = $qry_row->fClick; 조회수
$var_thread = trim($qry_row->fThread); 공백문자열을 제거하고 그 나머지 반환

if($key_word != ""){$var_title = eregi_replace("($key_word)", "<font color=red>1</font>", $var_title); }
?>
<table border="0" width="100%">
<? if($var_thread == "A"){ ?>
<tr onmouseout="this.style.background='#F5F5F5'" onmouseover="this.style.cursor='hand';this.style.background='#D0E6CE';" style="BACKGROUND: #F5F5F5" onClick="location='board_content.php?code=<?echo"$code"?>&idx=<?echo"$var_idx"?>&key_word=<?echo"$key_word"?>&type=<?echo"$type"?>';">
<? }else{?>
<tr onmouseout="this.style.background='#FFFFFF'" onmouseover="this.style.cursor='hand';this.style.background='#D0E6CE';" style="BACKGROUND: #FFFFFF" onClick="location='board_content.php?code=<?echo"$code"?>&idx=<?echo"$var_idx"?>&key_word=<?echo"$key_word"?>&type=<?echo"$type"?>';">
<? }?>
<td width="50" height="20" align="center"><?echo"$article_num"?></td>
<td width="430" height="20">
<?
$spacer = strlen($var_thread)-1;
for($j = 0; $j < $spacer; $j++) {echo("    ");}
$date_diff = date("Ymd",$qry_row->fDate);
$time_limit = date("Ymd",time());
if ($number == $var_uid) {echo("<b><font color='blue'>▶</font> </b>");
} else {
if ($date_diff == $time_limit) {
if(!strcmp($var_thread,"A")) {echo("<b><font color='#3399FF'>ⓝ</font> </b>");
} else {echo("<b><font color='#3399FF'>ⓝ</font> <font color='#ff6600'>ⓐ</font> </b>");}
} else {
if(!strcmp($var_thread,"A")) {echo("<font color='gray'><b>ⓞ</b></font>");
} else {echo("<b><font color='gray'>ⓞ</font> <font color='gray'>ⓐ</font></b> ");}
}
}?>
<a href="board_content.php?code=<?echo"$code"?>&idx=<?echo"$var_idx"?>&key_word=<?echo"$key_word"?>&type=<?echo"$type"?>">
<font color="black"><?echo"$var_title"?></font></a>
</td>
<td width="80" height="20" align="center"><?echo"$var_name"?></td>
<td width="50" height="20" align="center">
<?
/////// 이미지 갯수 확인
if($t > 1){?>
<a href="javascript:open_winimg('<?echo"$code"?>','<?echo"$var_img_tmp[0]"?>')"><img src='../image/disk_02a.gif' width='20' height='20' border=0></a>
<? }?>
</td>
<td width="70" height="20" align="center"><?echo"$var_date"?></td>
<td width="50" height="20" align="center"><?echo"$var_click"?></td>
</tr>
</table>
<table border="0" width="100%" bgcolor="white" cellspacing="0" cellpadding="0">
<tr>
<td width="100%" align="center" background="../image/bar02_dot1x1_black.gif" height="1"><img border="0" src="../image/1_line.gif" width="1" height="1"></td>
</tr>
</table>
<? $article_num--;
}?>
##### 어휴 이제 루프가 끝났네요..
</td>
<td width="20" background="../image/board_background-3.gif" width="20" height="75"></td>
</tr>
<tr>
<td width="100%" colspan="3"><img border="0" src="../image/board_background-2.gif" width="770" height="18"></td>
</tr>
</table>
<table bgcolor="white" width="770">
<tr>
<td align="right" width="100%">
<a href="board_list.php?code=<?echo"$code"?>&page=<?echo"$var_page"?>&type=<?echo"$type"?>&key_word=<?echo"$key_word"?>&keyfield=<?echo"$keyfield"?>&key=<?echo"$encoded_key"?>"><img src="../image/board_first.gif" border="0" title="처음목록"></a>
<?
if($block > 1) {$var_page = $first_page;
echo("<a href="board_list.php?code=$code&page=$var_page&type=$type&key_word=$key_word&keyfield=$keyfield&key=$encoded_key"><img src="../image/board_pre10.gif" border="0" title="다음 목록10개"></a>");
}
if ($page > 1) {$page_num = $page - 1;
echo("<a href="board_list.php?code=$code&page=$page_num&type=$type&key_word=$key_word&keyfield=$keyfield&key=$encoded_key"><img src="../image/board_next.gif" border="0" title="다음 목록"></a>");
}
if ($total_record > $last) {$page_num = $page + 1;
echo("<a href="board_list.php?code=$code&page=$page_num&type=$type&key_word=$key_word&keyfield=$keyfield&key=$encoded_key"><img src="../image/board_pre.gif" border="0" title="이전 목록"></a>");
}
if($block < $total_block) {$var_page = $last_page+1;
echo("<a href="board_list.php?code=$code&page=$var_page&type=$type&key_word=$key_word&keyfield=$keyfield&key=$encoded_key"><img src="../image/board_next10.gif" border="0" title="이전 목록 10개"></a>");
}?>
<a href="board_write.php?code=<?echo("$code")?>"><img src="../image/board_new.gif" border="0" title="글쓰기"></a>
<a href="<?echo("$mainpage")?>"><img src="../image/board_home.gif" border="0" title="홈으로 가기"></a>
</td>
</tr>
</table>
#### 검색 단어를 찾기위한 스크립트 언어
<script language="javascript">
<!--
function find(){
var form = document.board_list01;
if(form.key_word.value == ""){
alert("찾으실 단어를 입력 하셔야 합니다.");
form.key_word.focus();
return;
}
var code = form.code.value;
location.href="board_list.php?code=" + code + "&key_word=" + form.key_word.value;
}//-->
</script>
<table border="0" width="770">
<form action="board_list.php" name="board_list01" method="post">
<input type="hidden" name="code" value="<?echo"$code"?>">
<tr>
<td width="10%" height="25" align="right"></td>
<td width="10%" align="center"><input type="text" name="key_word" size="10"></td>
<td width="10%" align="left"><a href="javascript:find()"><img src="../image/find.gif" border="0"></a></td>
<td width="70%" align="center">
<? 여기는 이제 보시면 알겠져. 게시물아래 각각의 게시물에 이동할수 있는 단추를 만드는 곳입니다..이전 페이지 다음 페이지..등등

$total_block = ceil($total_page/$page_per_block);
$block = ceil($page/$page_per_block);

$first_page = ($block-1)*$page_per_block;
$last_page = $block*$page_per_block;

if($total_block <= $block) { $last_page = $total_page;}
if($block > 1) {
$var_page = $first_page;
echo("<a class='num_link' href="board_list.php?code=$code&cdoe3=$code3&code4=$code4&page=$var_page&type=$type&key_word=$key_word&type=$type"><b>◀</b></a>");
}echo" ";
for($direct_page = $first_page+1; $direct_page <= $last_page; $direct_page++) {
if($page == $direct_page) {echo("<font color='red'><b>[$direct_page]</b></font>");
} else {echo("<a class='num_link' href="board_list.php?code=$code&cdoe3=$code3&code4=$code4&page=$direct_page&type=$type&key_word=$key_word&type=$type"><b>[$direct_page]</b></a>"); }
}echo" ";
if($block < $total_block) { $var_page = $last_page+1;
echo("<a class='num_link' href="board_list.php?code=$code&cdoe3=$code3&code4=$code4&page=$var_page&type=$type&key_word=$key_word&type=$type"><b>▶</b></a>");
}?>
</td>
</tr>
</table>
</form>
###### 메뉴 하단에 페이지를 저장한 파일.
<?require_once("../html/include.bottom.php");?>
</center>
</body>



  목록

 . 
 php 게시판 소스 2 
 php 게시판 소스 1 
 php 게시판 
 게시판 짜기위한 게시판 ^-^; 
 러닝 php 책소스    : 스터디
 php 폼 자동완성  비밀글입니다  : 폼테그
 디데이 d-day 만들기    : asp
 파일 include 하기    : 팁
 php 간단한 카운터    : 팁
 입력폼에서 엔터키 치면 스크립트 실행하기.    : 팁
 response체, request객체, server객체    : asp
 링크    : asp
 반복되는 링크 묶기    : asp
 ....  비밀글입니다  : 공지
 텟넷 명령어    : 팁
 텔넷 접속    : 팁
 간단한 방명록 소스    : 스터디
 사이트 [1]   : 팁
 mysql 기본설정    : MySql
 ssh    : 팁
 zterm    : 팁
 자바 키워드    : 팁
 자바개발 프로그램설치    : 팁
 [강의] 게시판 목록을 보여주는 부분입니다..    : 스터디
 while 문으로 이미지쉽게보이기 [2]   : 팁
 php 7-2    : 스터디
 php 7-1    : 스터디
 php 6    : 스터디
 php 5    : 스터디
 php4    : 스터디
 php3    : 스터디
 php2    : 스터디
 php1 [3]   : 스터디
 CREATE TABLE    : MySql
 SQL 1    : 스터디
 문단 양쪽정렬    : 스터디
 초간단 php 랜덤 이미지 및 랜덤 배경이미지 소스    : 팁
  [정보] 초보분들을 위한 PC부품 구매를 위한 도우미    : 팁
 쿠키를 이용한 사용자 인증    : 팁
 테이블 색 다르게 지정 하기 다른방법    : 팁
 자동링크 function    : 팁
 [리눅스] 리눅스 기본명령어 50    : 스터디
 my sql    : MySql
 Database의 구조    : 스터디
 데이터 베이스 1    : 스터디

    목록            1

Copyright 1999-2018 Zeroboard / skin by Yoojunge