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'> </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'>
");
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 </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>");
}
}
?>
- 이전글DB내용을 파일로 저장하기 22.10.09
- 다음글GUESTBOOK 만들기 22.10.09