IT 노하우

PHP GUESTBOOK 만들기2

페이지 정보

본문

지난번에 살펴본 guestbook 테이블에 대해 좀 더 살펴보면 

id : 각 글을 구분하는 고유번호 입니다. Auto_increment 속성을 가지며  

새로운 자료가 insert 될 때 MySQL 이 알아서 자동증가시켜 줍니다. 

name : 글쓴이의 이름  

home : " 의 홈페이지 

email : " Email 주소 

comment : 방명록에 남긴 말 

ip : 글쓴이의 IP주소로 $REMOTE_ADDR 환경변수의 값입니다. 

reg_date : 글쓴 날자,시간  

등으로 되어있구요. 

guestbook.html 을 실행하면 일단 게시물의 목록을 보여주고  

여기서 새글쓰기나 이전페이지 , 다음페이지의 링크를 선택하면 

$mode에 적절한 값이 들어가면서 다시한번 자신($PHP_SELF)을 실행하면서 

해당되는 부분이 실행이 되는 거지요 

오늘은 우선 리스트 보여주기와 링크아이콘을 만드는 부분을 살펴 봅니다. 

 

//==================== 

// 내용보여주기  

//==================== 

// 이부분은 모드를 정해 주지 않고 그냥 guestbook.html을 불러오면 그때까지 저장되어 있는  

// 방명록의 내용을 $scale 에 정의된 개수만큼만 보여주고 나머지는 이전페이지 혹은 다음페이지  

// 형태의 링크로 만들어 주는 부분입니다. 

if(!$mode || $result) // 모드가 정해져 있지 않거나 DB 업데이트가 성공적으로 이루어진 경우에만 

if(!$start){ $start= 0 ;} // 만일 $start 값이 지정되어 있지 않으면 

// 방명록의 가장 최근 글부터 보여 줍니다. 

$que1="select DATE_FORMAT(reg_date,'Y.m.d'), id, comment, name, home ,email, ip 

from guestbook 

order by id DESC " ; // 방명록의 내용을 등록된 역순(최근글이 가장 먼저)으로 가져옵니다. 

$result = mysql_query($que1,$connect ); 

$total = mysql_affected_rows(); // 가져온 글의 수 

 

 

if($start) 

{ $n=$total-$start; 

else 

{ $n=$total; 

 

for($i=$start ; $i< $start+$scale ; $i++) // start 에서 scale 까지 만 보여 준다 

if($i< $total ) // 전체 자료가 $scale 보다 작으면 개수까지만 출력  

{  

mysql_data_seek($result,$i); // 결과에서 $i번째 글로 이동 

$row=mysql_fetch_array($result); // $i번째 글을 가져온다 

  

$row[comment] = stripslashes($row[comment]) ; // " 을 " 로 변환 

echo("<TABLE border='0' cellspacing='1' > 

<TR> 

<TD width='109' bgcolor='#5485B6'><P align='center'><FONT face='Arial' 

size='2' color='#CDDAE4'><a href=$PHP_SELF?mode=del&id=$row[id]><IMG src='./img/del.gif' 

width='22' height='13' border='0' alt='지우기'></a></FONT></TD> 

<TD width='541'><FONT face='굴림' size='2' color='#FAF1C7'>$row[0] 

from $row[ip]</FONT></TD> 

</TR> 

  

<TR> 

<TD width='109' bgcolor='#5485B6'><P align='center'><FONT face='Arial' 

size='2' color='#CDDAE4'>Name</FONT></TD> 

<TD width='541'><FONT face='굴림' size='2' 

color='#E7EEF5'>$row[name]</FONT></TD> 

</TR> 

  

<TR> 

 

<TD width='109' bgcolor='#5485B6'><P align='center'><FONT face='Arial' size='2' 

color='#CDDAE4'>Home / Email</FONT></TD> 

<TD width='541'><FONT face='굴림' size='2' 

color='#E7EEF5'>&nbsp;</FONT><A href='mailto:$row[email]'><FONT face='굴림' size='2' 

color='#E7EEF5'><IMG SRC=./img/mail.gif BORDER=0 

ALT='편지쓰기'>$row[email]</FONT></A><FONT face='굴림' size='2' color='#E7EEF5'> 

&nbsp;"); 

  

if($row[home]) echo("<a href=http://$row[home]><IMG SRC=./img/home.gif 

BORDER=0 ALT='홈페이지'>http://$row[home]</a>"); 

  

echo("</FONT></TD> 

</TR> 

  

<TR> 

<TD width='109' bgcolor='#5485B6'><P align='center'><FONT face='Arial' 

size='2' color='#CDDAE4'>Comment&nbsp;</FONT></TD>  

<TD width='541'><FONT face='굴림'  

size='2' color='#E7EEF5'>$row[comment]</FONT></TD> 

</TR> 

<TR> 

<TD width='109'><HR size='1' noshade></TD> 

<TD width='541'><HR size='1' noshade></TD> 

</TR></TABLE>"); // 방명록의 내용을 출력 

} // 1건 출력 끝! 

  

  

//===================== 내용보여주기 끝 =========== 

 

// ==================== 하단 버튼 ============== 

// 방명록의 글을 보여 주고나서 새글 쓰기 혹은 다음,이전 페이지 링크 

if(!$mode || $result)  

// 새글쓰기 버튼 입니다. $mode 를 new 로 해서 자기자신(guestbook.html)을 다시 부릅니다. 

// $PHP_SELF는 자신의 화일이름을 가지는 변수입니다. 매우 유용하게 사용 됩니다. 

echo("<center>  

<a href=$PHP_SELF?mode=new><IMG HEIGHT=30 WIDTH=30 SRC='./img/write.gif' 

VSPACE=0 HSPACE=0 ALIGN='TOP'  

BORDER=0 alt='방명록에 글쓰기'></a> "); 

$p_p=$start- $scale ; // 시작번호 - 페이지당 글수를 빼면... 이전 페이지 

$n_p=$start+ $scale ; // 시작번호 - 페이지당 글수를 더하면... 다음 페이지 

if($p_p>=0 && $mode!='new') // 이전 페이지가 존재하면 링크를 만들어 줍니다 

{ echo("<a href='$PHP_SELF?start=$p_p'><IMG HEIGHT=30 WIDTH=30 SRC='./img/p-doc.gif' 

VSPACE=0 HSPACE=0 ALIGN='TOP' 

BORDER=0 alt='이전 페이지'></a> "); 

if($n_p<$total && $mode != 'new') // 다음 페이지가 존재하면 링크를 만들어 줍니다 

{ echo("<a href='$PHP_SELF?start=$n_p'><IMG HEIGHT=30 WIDTH=30 SRC='./img/n-doc.gif' 

VSPACE=0 HSPACE=0 ALIGN='TOP'  

BORDER=0 alt='다음 페이지'></a></center>"); 


?>