웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
두시간 동안 글을 썼는데 .......
기분 좋게 (?) 글이 날라갔습니다 하하하하하~~~~ 웃어야지
긴 글을 쓸 때는 내용을 복사해 두길 생활화 합시다 ! ^_______________________^ V
오늘 해볼 사항은 리스트 파일의 제목 부분에 링크를 걸어서 view.php 파일로 넘기는 것과
view.php 파일의 소스입니다
먼저 리스트 파일의 아래 부분을 찾아 주세요
<!-- 여기서부터 글을 반복 시켜 줍니다 -->
<tr>
<td width="48" height="22">
<?= $loop_number?>
</td>
<td width="569" height="22">
<?=$now_data[subject]?>
</td>
<td width="112" height="22">
<?=$now_data[name]?>
</td>
<td width="103" height="22">
<?=$reg_date?>
</td>
<td width="73" height="22">
<?=$now_data[hit]?>
</td>
<td width="68" height="22">
추천수
</td>
</tr>
<tr>
<td width="973" height="1" colspan="6" bgcolor="silver">
</td>
</tr>
<!-- 여기까지 글을 반복 시켜 줍니다 -->
여기서
<?=$now_data[subject]?> 부분을 아래와 같이 링크를 걸어줍니다
<a href=<?="view.php?id=$data[board_id]&exec=view&no=$now_data[no]&page=$page&select_arrange=$select_arrange&desc=$desc&category=$category&sn=$sn&ss=$ss&sc=$sc&keyword=$keyword&page_num=$page_num"?>><?=$now_data[subject]?></a>
제목을 클릭하면 해당 글의 본문(view.php)을 볼 수 있는거죠
list.php 파일과 view.php 의 php소스는 아직까지는 크게 차이가 나지 않습니다
다만 view.php 파일에는 위에 본문이 담긴다는 것만 틀리죠
이하 view.php 의 소스입니다
----------------------------------------------------------------------------------------------
<?
제로보드 절대 경로
제로보드 상대 경로
include $_zb_path."lib.php";
// DB 연결
if(!$connect) $connect=dbConn();
// 멤버정보 구하기
$member=member_info();
// 글쓴이의 정보를 갖고옴;;
$data=mysql_fetch_array(mysql_query("select no, board_no, user_id,name, member_no, board_id ,board_name ,back_img from member_board where board_id='$id'"));
$data[no] = stripslashes($data[no]);
$data[name] = stripslashes($data[name]);
$data[user_id] = stripslashes($data[user_id]);
$data[board_name] = stripslashes($data[board_name]);
$data[member_no] = stripslashes($data[member_no]);
$data[width] = stripslashes($data[width]);
$data2=mysql_fetch_array(mysql_query("select * from $member_table where user_id='$id' || no='$member_no'"));
// $data 가 없을때, 즉 탈퇴한 회원인경우 표시
if(!$data[no]) Error("해당글을 찾을 수 없습니다");
// 선택된 메모가 있을시 데이타 뽑아오기;;
if($no) {
$now_data=mysql_fetch_array(mysql_query("select no,board_name,board_id,member_id,name,homepage,email,member_no,subject,memo,reg_date,file1,hit from member_get_memo where no='$no'"));
}
// 전체 글의 갯수
$temp2=mysql_fetch_array(mysql_query("select count(*) from member_get_memo where board_id='$data[board_id]'"));
$total=$temp2[0];
// 페이지 계산
if(!$page) $page=1;
$page_num=10;
$start_num=($page-1)*$page_num; // 페이지 수에 따른 출력시 첫번째가 될 글의 번호 구함
$total_page=(int)(($total-1)/$page_num)+1; // 전체 페이지 구함
if($page>$total_page) $page=$total_page; // 페이지가 전체 페이지보다 크면 페이지 번호 바꿈
// 데이타 뽑아오는 부분...
$que="select * from member_get_memo where board_id='$data[board_id]' order by no desc limit $start_num,$page_num";
$result=mysql_query($que) or Error(mysql_error());
// 이용자 아바타 보이기
// 조회수 증가
if($data[member_no] != $member[no])
{
@mysql_query("update member_get_memo set hit=hit+1 where no='$no'") or mysql_error();
}
// MySQL 닫기
if($connect) mysql_close($connect);
// 페이지 계산 $print_page 라는 변수에 저장
$print_page="";
$show_page_num=10;
$start_page=(int)(($page-1)/$show_page_num)*$show_page_num;
$i=1;
if($page>$show_page_num) {
$prev_page=$start_page;
$print_page="<a href=$PHP_SELF?id=$id&page=$prev_page&select_arrange=$select_arrange&desc=$desc&category=$category&sn=$sn&ss=$ss&sc=$sc&keyword=$keyword&page_num=$page_num>[Prev]</a> ";
$print_page.="<a href=$PHP_SELF?id=$id&page=1&select_arrange=$select_arrange&desc=$desc&category=$category&sn=$sn&ss=$ss&sc=$sc&keyword=$keyword&page_num=$page_num>[1]</a>..";
}
while($i+$start_page<=$total_page&&$i<=$show_page_num) {
$move_page=$i+$start_page;
if($page==$move_page) $print_page.=" <b>$move_page</b> ";
else $print_page.="<a href=$PHP_SELF?id=$id&page=$move_page&select_arrange=$select_arrange&desc=$desc&category=$category&sn=$sn&ss=$ss&sc=$sc&keyword=$keyword&page_num=$page_num>[$move_page]</a>";
$i++;
}
if($total_page>$move_page) {
$next_page=$move_page+1;
$print_page.="..<a href=$PHP_SELF?id=$id&page=$total_page&select_arrange=$select_arrange&desc=$desc&category=$category&sn=$sn&ss=$ss&sc=$sc&keyword=$keyword&page_num=$page_num>[$total_page]</a>";
$print_page.=" <a href=$PHP_SELF?id=$id&page=$next_page&select_arrange=$select_arrange&desc=$desc&category=$category&sn=$sn&ss=$ss&sc=$sc&keyword=$keyword&page_num=$page_num>[Next]</a>";
}
?>
<?
if($data[no]) {
?>
<html>
<head>
<title>제목없음</title>
<meta name="generator" content="Namo WebEditor v4.0">
</head>
<body bgcolor="white" text="black" link="blue" vlink="purple" alink="red">
<table align="center" border="0" cellpadding="0" cellspacing="0" width="973">
<tr>
<td width="973" height="25" colspan="6" bgcolor="#F6E1F5">
글제목 : <?=$now_data[subject]?>
</td>
</tr>
<tr>
<td width="132" height="125" align="center" valign="middle" rowspan="8">
아바타
</td>
<td width="841" height="25" colspan="5">
글쓴 시간 : <?=$reg_date?>
</td>
</tr>
<tr>
<td width="841" height="1" colspan="5" bgcolor="silver">
</td>
</tr>
<tr>
<td width="841" height="25" colspan="5">
글쓴이 : <?=$now_data[name]?>
</td>
</tr>
<tr>
<td width="841" height="1" colspan="5" bgcolor="silver">
</td>
</tr>
<tr>
<td width="841" height="25" colspan="5">
홈페이지 :
</td>
</tr>
<tr>
<td width="841" height="1" colspan="5" bgcolor="silver">
</td>
</tr>
<tr>
<td width="841" height="25" colspan="5">
메일 ;
</td>
</tr>
<tr>
<td width="841" height="1" colspan="5" bgcolor="silver">
</td>
</tr>
<tr>
<td width="973" height="121" align="center" valign="middle" colspan="6">
<table border="0" cellpadding="0" cellspacing="0" width="100%" height="95%">
<tr>
<td width="963" height="95%" valign="top" bgcolor="#F2F2F2">
<?=$now_data[memo]?>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td width="973" height="58" align="center" valign="top" colspan="6">
<table border="1">
<tr>
<td width="963" height="54" bgcolor="silver"> 코멘트 글과 코멘트를 입력 시키는 곳
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td width="973" height="23" align="center" valign="top" colspan="6">
글목록 글쓰기 수정 삭제등 버튼 들어가는 곳 </td>
</tr>
<tr>
<td width="973" height="33" colspan="6">
관리 관리 게시판 >> <?=$data[board_name]?>
</td>
</tr>
<tr>
<td width="132" height="21" align="center" valign="middle" bgcolor="#DEDEF7">
번호
</td>
<td width="485" height="21" align="center" valign="middle" bgcolor="#DEDEF7">
내용
</td>
<td width="112" height="21" align="center" valign="middle" bgcolor="#DEDEF7">
이름
</td>
<td width="103" height="21" align="center" valign="middle" bgcolor="#DEDEF7">
날짜
</td>
<td width="73" height="21" align="center" valign="middle" bgcolor="#DEDEF7">
조회
</td>
<td width="68" height="21" align="center" valign="middle" bgcolor="#DEDEF7">
추천
</td>
</tr>
<tr>
<td width="973" height="1" align="center" valign="middle" colspan="6" bgcolor="silver">
</td>
</tr>
<?
// 출력
$loop_number=$total-($page-1)*$page_num;
while($now_data=mysql_fetch_array($result)) {
//글을 쓴 날짜;
$reg_date=date("Y/m/d H:i",$now_data[reg_date]);
?>
<!-- 여기서부터 글을 반복 시켜 줍니다 -->
<tr>
<td width="132" height="22">
<?= $loop_number?>
</td>
<td width="485" height="22">
<a href=<?="view.php?id=$data[board_id]&exec=view&no=$now_data[no]&page=$page&select_arrange=$select_arrange&desc=$desc&category=$category&sn=$sn&ss=$ss&sc=$sc&keyword=$keyword&page_num=$page_num"?>><?=$now_data[subject]?></a>
</td>
<td width="112" height="22">
<?=$now_data[name]?>
</td>
<td width="103" height="22">
<?=$reg_date?>
</td>
<td width="73" height="22">
<?=$now_data[hit]?>
</td>
<td width="68" height="22">
추천수
</td>
</tr>
<tr>
<td width="973" height="1" colspan="6" bgcolor="silver">
</td>
</tr>
<!-- 여기까지 글을 반복 시켜 줍니다 -->
<?
$loop_number--;
}
?>
<tr>
<td width="973" height="24" colspan="6">
<table align="center" border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td width="498">
<font style=font-family:Tahoma;font-size:7pt;color:#cc0000><?=$print_page?></font>
</td>
<td width="475" align="right">
글쓰기 <a href=<?="list.php?id=$data[board_id]"?>>목록 </a>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td width="617" height="21" colspan="2">
</td>
<td width="356" height="21" colspan="4">
찾기 기능
</td>
</tr>
</table>
</body>
</html>
<?
}
?>
----------------------------------------------------------------------------------------------
위까지가 소스입니다
소스를 view.php 파일로 저장해서 list.php 파일과 동일한 선상에 업로드 해주세요
list.php 파일과 view.php 파일은 글목록 부분 (리스트) 부분이 while문 안에서 반복되어져서 불러들여집니다
글을 쓰게 되면 member_get_memo 테이블 (글의 정보가 담기는 테이블) 에 모든 조건이 담깁니다
그 중에서도 제일 처음에 있는 no필드에 글이 들어올 때 마다 번호를 부여해서 하나씩 증가하게 됩니다
처음글은 1 그 다음 글이 들어오면 2 그 다음글은 3 ~~~~ 이런식으로 쓰여지게 되는거죠
만약에 10개의 글을 썼다면 no 라는 필드엔 1에서부터 10까지 차례대로 순번(숫자)이 들어가 있습니다
이 숫자 들이 글의 번호입니다 제로보드의 회원번호도 이와 같습니다
로그인한 회원의 번호는 $member[no] 이구 여기에서 쓰이는 no 값은 제로보드 회원 테이블 맨 앞에 혹은 위에
있는 처음 쓰여진 no 필드의 값입니다 처음 생성한 사람이 1번이니까 최고 관리자의 번호는 1번이 되는거죠
쉽게 말하면 일종의 번호표인 것입니다 글이나 어떠한 값의 위치를 알려 줄수 있는 하나의 순서표(조건값)인거죠
아래와 같은 상황이 있습니다
제로보드
웹 스터디
php
사용자가 웹스터디에 들어간 목록을 보구 싶을 때 웹스터디에 관한 글을 불러오라며 직접 써 넣을 수도
있습니다 ( 찾기 기능) 하지만 글을 볼려구 일일이 써 넣을 수는 없으니 쉽게 접근할 수 있는 방법이
해당글에 순서를 부여하고 그 순서를 이용해서 글을 정렬 시키는거죠
// 선택된 메모가 있을시 데이타 뽑아오기;;
if($no) {
$now_data=mysql_fetch_array(mysql_query("select no,board_name,board_id,member_id,name,homepage,email,member_no,subject,memo,reg_date,file1,hit from member_get_memo where no='$no'"));
}
$now_data 는 글이 담기는 member_get_memo 의 데이터입니다
$now_data 라구 정의된 데이터들은 member_get_memo 테이블에서 불러오되 no='$no' 라는 값을 맞춰서
즉 no라는 필드에서 들어온 변수 ($no = 글 번호가 되겠죠 ) 에 맞게 해당 열에 써진 부분을 찾아 와라가 됩니다
select no,board_name,board_id,member_id,name,homepage,email,member_no,subject,memo,reg_date,file1,hit
이분은 member_get_memo 에서 $now_data로 불러들이는 필드의 종류입니다 만약에 여기에 없는 필드를
기입한다면 에러가 나겠죠 또한 테이블에는 있는 필드지만 위에 기재가 되어 있지 않다면 표기가 되지 않구요
저도 가끔 이부분에서 에러를 냅니다 하도 많이 고쳐 대서 ...
select * frim member_getmemo where no='$no'")); 와 같이 모든 필드의 값을 불러들여도 되지만
양이 많아질 때는 일일이 써주는게 더 효율적이라고 하더군요
$now_data[name] 은 글쓴이 $now_data[board_id] 는 글이 담긴 게시판 아이디 $now_data[memo]는 글내용
이런식으로 되겠죠
처음 쓴 글은 당연히 no필드에 1이 기입 되니 글번호 1번에 담긴걸 불러온다면 주소의 표시는 아래와 같이 됩니다
view.php?id=repter&no=1
여기서 &는 조건값들을 연결 시켜줍니다 게시판 아이디는 repter 이면서 글 번호 1인 값이 되는거죠
만약 카테고리가 지원 된다면
view.php?id=repter&category=1&no=1
과 같이 되겠죠
게시판에서 부여되는 조건값을 &로 연결고리로 넣어주는거죠
잠깐 팁
게시판을 디자인 하실 때 테이블 안에 테이블을 넣는 식으로 하시는게 속 시원하실 수도 있습니다
테이블 속성상 넓이가 지정되면 다음의 셀은 그 전 셀의 영향을 받게 되어 원하는 위치에 정렬이 되지 않습니다
또한 스타일 태그에 대해 한번쯤 필요한 페이지를 찾아서 봐두시길 바랍니다 (nowrap 으로 네이버나 야후에서
찾아 보시면 게시판에서 쓰일만한 스타일 태그들이 많이 나옵니다 )
원하는 스타일의 테이블을 만들었어도 게시판의 사이즈에 의해 정렬된 부분이 깨질 수 있습니다
또한 글을 쓸때 엔터를 치지 않은 또한 띄어 쓰기가 되지 않은 글이 들어오면 넓이 부분에서 게시판 크기를
벗어납니다 그러니 필요한 부분 부분을 적절히 스타일 태그를 넣어서 사용해야 합니다
특히 미니홈에 들어가는 게시판은 획일화된 사이즈의 레이아웃에만 쓰는게 아닌 여러가지의 레이아웃에
쓰여야 하기 때문에 사이즈의 변화에도 이상이 없어야 합니다
차후에는 리스트나 뷰파일의 아래부분
-------------------------------------
<?
// 출력
$loop_number=$total-($page-1)*$page_num;
while($now_data=mysql_fetch_array($result)) {
//글을 쓴 날짜;
$reg_date=date("Y/m/d H:i",$now_data[reg_date]);
?>
<!-- 여기서부터 글을 반복 시켜 줍니다 -->
---------------------------------------------
의 글을 쓴 날짜 밑에 부분에 $reg_date를 미리 지정해 준것 처럼 여러 사항을 지정해서 넣어 주게 됩니다
while 의 밖에서 소스를 적용하면 하나의 변수로 인식해서 같은 결과를 출력해 버리는 결과가 나오기도 합니다
그래서 while 안에서 필요한 소스를 넣어주게 됩니다 차후에 들어갈 소스는
멤버의 이름 아이콘과 만약 이름레이어를 쓰게 된다면 이름레이어에 관한 부분과 글을 읽고 리스트로 돌아 왔을
때 내가 읽었던 글이 어떤 글이였는지 표시해 주는 가상번호에 관한것등 필요한 부분 부분을 넣게 됩니다
올려진 파일을 점검해야 할 사항은 오류가 나지 않은 상태에서 list.php 파일에서 글제목을 클릭하고 들어갔을 때
해당 글이 업로드 된 그림과 같이 잘 나오는지 확인하며
그 아래에 있는 리스트에서 다시 다른 글로 넘어가는지 목록보기를 눌렀을 때
list.php 파일로 넘어 오는지 그리고 hit 수가 제대로 표기 되는지를 확인하시면 됩니다
나만의 미니홈 만들기 ㅡ view.php 파일과 제목링크
2004.11.27 03:58
두시간 동안 글을 썼는데 .......
기분 좋게 (?) 글이 날라갔습니다 하하하하하~~~~ 웃어야지
긴 글을 쓸 때는 내용을 복사해 두길 생활화 합시다 ! ^_______________________^ V
오늘 해볼 사항은 리스트 파일의 제목 부분에 링크를 걸어서 view.php 파일로 넘기는 것과
view.php 파일의 소스입니다
먼저 리스트 파일의 아래 부분을 찾아 주세요
<!-- 여기서부터 글을 반복 시켜 줍니다 -->
<tr>
<td width="48" height="22">
<?= $loop_number?>
</td>
<td width="569" height="22">
<?=$now_data[subject]?>
</td>
<td width="112" height="22">
<?=$now_data[name]?>
</td>
<td width="103" height="22">
<?=$reg_date?>
</td>
<td width="73" height="22">
<?=$now_data[hit]?>
</td>
<td width="68" height="22">
추천수
</td>
</tr>
<tr>
<td width="973" height="1" colspan="6" bgcolor="silver">
</td>
</tr>
<!-- 여기까지 글을 반복 시켜 줍니다 -->
여기서
<?=$now_data[subject]?> 부분을 아래와 같이 링크를 걸어줍니다
<a href=<?="view.php?id=$data[board_id]&exec=view&no=$now_data[no]&page=$page&select_arrange=$select_arrange&desc=$desc&category=$category&sn=$sn&ss=$ss&sc=$sc&keyword=$keyword&page_num=$page_num"?>><?=$now_data[subject]?></a>
제목을 클릭하면 해당 글의 본문(view.php)을 볼 수 있는거죠
list.php 파일과 view.php 의 php소스는 아직까지는 크게 차이가 나지 않습니다
다만 view.php 파일에는 위에 본문이 담긴다는 것만 틀리죠
이하 view.php 의 소스입니다
----------------------------------------------------------------------------------------------
<?
제로보드 절대 경로
제로보드 상대 경로
include $_zb_path."lib.php";
// DB 연결
if(!$connect) $connect=dbConn();
// 멤버정보 구하기
$member=member_info();
// 글쓴이의 정보를 갖고옴;;
$data=mysql_fetch_array(mysql_query("select no, board_no, user_id,name, member_no, board_id ,board_name ,back_img from member_board where board_id='$id'"));
$data[no] = stripslashes($data[no]);
$data[name] = stripslashes($data[name]);
$data[user_id] = stripslashes($data[user_id]);
$data[board_name] = stripslashes($data[board_name]);
$data[member_no] = stripslashes($data[member_no]);
$data[width] = stripslashes($data[width]);
$data2=mysql_fetch_array(mysql_query("select * from $member_table where user_id='$id' || no='$member_no'"));
// $data 가 없을때, 즉 탈퇴한 회원인경우 표시
if(!$data[no]) Error("해당글을 찾을 수 없습니다");
// 선택된 메모가 있을시 데이타 뽑아오기;;
if($no) {
$now_data=mysql_fetch_array(mysql_query("select no,board_name,board_id,member_id,name,homepage,email,member_no,subject,memo,reg_date,file1,hit from member_get_memo where no='$no'"));
}
// 전체 글의 갯수
$temp2=mysql_fetch_array(mysql_query("select count(*) from member_get_memo where board_id='$data[board_id]'"));
$total=$temp2[0];
// 페이지 계산
if(!$page) $page=1;
$page_num=10;
$start_num=($page-1)*$page_num; // 페이지 수에 따른 출력시 첫번째가 될 글의 번호 구함
$total_page=(int)(($total-1)/$page_num)+1; // 전체 페이지 구함
if($page>$total_page) $page=$total_page; // 페이지가 전체 페이지보다 크면 페이지 번호 바꿈
// 데이타 뽑아오는 부분...
$que="select * from member_get_memo where board_id='$data[board_id]' order by no desc limit $start_num,$page_num";
$result=mysql_query($que) or Error(mysql_error());
// 이용자 아바타 보이기
// 조회수 증가
if($data[member_no] != $member[no])
{
@mysql_query("update member_get_memo set hit=hit+1 where no='$no'") or mysql_error();
}
// MySQL 닫기
if($connect) mysql_close($connect);
// 페이지 계산 $print_page 라는 변수에 저장
$print_page="";
$show_page_num=10;
$start_page=(int)(($page-1)/$show_page_num)*$show_page_num;
$i=1;
if($page>$show_page_num) {
$prev_page=$start_page;
$print_page="<a href=$PHP_SELF?id=$id&page=$prev_page&select_arrange=$select_arrange&desc=$desc&category=$category&sn=$sn&ss=$ss&sc=$sc&keyword=$keyword&page_num=$page_num>[Prev]</a> ";
$print_page.="<a href=$PHP_SELF?id=$id&page=1&select_arrange=$select_arrange&desc=$desc&category=$category&sn=$sn&ss=$ss&sc=$sc&keyword=$keyword&page_num=$page_num>[1]</a>..";
}
while($i+$start_page<=$total_page&&$i<=$show_page_num) {
$move_page=$i+$start_page;
if($page==$move_page) $print_page.=" <b>$move_page</b> ";
else $print_page.="<a href=$PHP_SELF?id=$id&page=$move_page&select_arrange=$select_arrange&desc=$desc&category=$category&sn=$sn&ss=$ss&sc=$sc&keyword=$keyword&page_num=$page_num>[$move_page]</a>";
$i++;
}
if($total_page>$move_page) {
$next_page=$move_page+1;
$print_page.="..<a href=$PHP_SELF?id=$id&page=$total_page&select_arrange=$select_arrange&desc=$desc&category=$category&sn=$sn&ss=$ss&sc=$sc&keyword=$keyword&page_num=$page_num>[$total_page]</a>";
$print_page.=" <a href=$PHP_SELF?id=$id&page=$next_page&select_arrange=$select_arrange&desc=$desc&category=$category&sn=$sn&ss=$ss&sc=$sc&keyword=$keyword&page_num=$page_num>[Next]</a>";
}
?>
<?
if($data[no]) {
?>
<html>
<head>
<title>제목없음</title>
<meta name="generator" content="Namo WebEditor v4.0">
</head>
<body bgcolor="white" text="black" link="blue" vlink="purple" alink="red">
<table align="center" border="0" cellpadding="0" cellspacing="0" width="973">
<tr>
<td width="973" height="25" colspan="6" bgcolor="#F6E1F5">
글제목 : <?=$now_data[subject]?>
</td>
</tr>
<tr>
<td width="132" height="125" align="center" valign="middle" rowspan="8">
아바타
</td>
<td width="841" height="25" colspan="5">
글쓴 시간 : <?=$reg_date?>
</td>
</tr>
<tr>
<td width="841" height="1" colspan="5" bgcolor="silver">
</td>
</tr>
<tr>
<td width="841" height="25" colspan="5">
글쓴이 : <?=$now_data[name]?>
</td>
</tr>
<tr>
<td width="841" height="1" colspan="5" bgcolor="silver">
</td>
</tr>
<tr>
<td width="841" height="25" colspan="5">
홈페이지 :
</td>
</tr>
<tr>
<td width="841" height="1" colspan="5" bgcolor="silver">
</td>
</tr>
<tr>
<td width="841" height="25" colspan="5">
메일 ;
</td>
</tr>
<tr>
<td width="841" height="1" colspan="5" bgcolor="silver">
</td>
</tr>
<tr>
<td width="973" height="121" align="center" valign="middle" colspan="6">
<table border="0" cellpadding="0" cellspacing="0" width="100%" height="95%">
<tr>
<td width="963" height="95%" valign="top" bgcolor="#F2F2F2">
<?=$now_data[memo]?>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td width="973" height="58" align="center" valign="top" colspan="6">
<table border="1">
<tr>
<td width="963" height="54" bgcolor="silver"> 코멘트 글과 코멘트를 입력 시키는 곳
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td width="973" height="23" align="center" valign="top" colspan="6">
글목록 글쓰기 수정 삭제등 버튼 들어가는 곳 </td>
</tr>
<tr>
<td width="973" height="33" colspan="6">
관리 관리 게시판 >> <?=$data[board_name]?>
</td>
</tr>
<tr>
<td width="132" height="21" align="center" valign="middle" bgcolor="#DEDEF7">
번호
</td>
<td width="485" height="21" align="center" valign="middle" bgcolor="#DEDEF7">
내용
</td>
<td width="112" height="21" align="center" valign="middle" bgcolor="#DEDEF7">
이름
</td>
<td width="103" height="21" align="center" valign="middle" bgcolor="#DEDEF7">
날짜
</td>
<td width="73" height="21" align="center" valign="middle" bgcolor="#DEDEF7">
조회
</td>
<td width="68" height="21" align="center" valign="middle" bgcolor="#DEDEF7">
추천
</td>
</tr>
<tr>
<td width="973" height="1" align="center" valign="middle" colspan="6" bgcolor="silver">
</td>
</tr>
<?
// 출력
$loop_number=$total-($page-1)*$page_num;
while($now_data=mysql_fetch_array($result)) {
//글을 쓴 날짜;
$reg_date=date("Y/m/d H:i",$now_data[reg_date]);
?>
<!-- 여기서부터 글을 반복 시켜 줍니다 -->
<tr>
<td width="132" height="22">
<?= $loop_number?>
</td>
<td width="485" height="22">
<a href=<?="view.php?id=$data[board_id]&exec=view&no=$now_data[no]&page=$page&select_arrange=$select_arrange&desc=$desc&category=$category&sn=$sn&ss=$ss&sc=$sc&keyword=$keyword&page_num=$page_num"?>><?=$now_data[subject]?></a>
</td>
<td width="112" height="22">
<?=$now_data[name]?>
</td>
<td width="103" height="22">
<?=$reg_date?>
</td>
<td width="73" height="22">
<?=$now_data[hit]?>
</td>
<td width="68" height="22">
추천수
</td>
</tr>
<tr>
<td width="973" height="1" colspan="6" bgcolor="silver">
</td>
</tr>
<!-- 여기까지 글을 반복 시켜 줍니다 -->
<?
$loop_number--;
}
?>
<tr>
<td width="973" height="24" colspan="6">
<table align="center" border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td width="498">
<font style=font-family:Tahoma;font-size:7pt;color:#cc0000><?=$print_page?></font>
</td>
<td width="475" align="right">
글쓰기 <a href=<?="list.php?id=$data[board_id]"?>>목록 </a>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td width="617" height="21" colspan="2">
</td>
<td width="356" height="21" colspan="4">
찾기 기능
</td>
</tr>
</table>
</body>
</html>
<?
}
?>
----------------------------------------------------------------------------------------------
위까지가 소스입니다
소스를 view.php 파일로 저장해서 list.php 파일과 동일한 선상에 업로드 해주세요
list.php 파일과 view.php 파일은 글목록 부분 (리스트) 부분이 while문 안에서 반복되어져서 불러들여집니다
글을 쓰게 되면 member_get_memo 테이블 (글의 정보가 담기는 테이블) 에 모든 조건이 담깁니다
그 중에서도 제일 처음에 있는 no필드에 글이 들어올 때 마다 번호를 부여해서 하나씩 증가하게 됩니다
처음글은 1 그 다음 글이 들어오면 2 그 다음글은 3 ~~~~ 이런식으로 쓰여지게 되는거죠
만약에 10개의 글을 썼다면 no 라는 필드엔 1에서부터 10까지 차례대로 순번(숫자)이 들어가 있습니다
이 숫자 들이 글의 번호입니다 제로보드의 회원번호도 이와 같습니다
로그인한 회원의 번호는 $member[no] 이구 여기에서 쓰이는 no 값은 제로보드 회원 테이블 맨 앞에 혹은 위에
있는 처음 쓰여진 no 필드의 값입니다 처음 생성한 사람이 1번이니까 최고 관리자의 번호는 1번이 되는거죠
쉽게 말하면 일종의 번호표인 것입니다 글이나 어떠한 값의 위치를 알려 줄수 있는 하나의 순서표(조건값)인거죠
아래와 같은 상황이 있습니다
제로보드
웹 스터디
php
사용자가 웹스터디에 들어간 목록을 보구 싶을 때 웹스터디에 관한 글을 불러오라며 직접 써 넣을 수도
있습니다 ( 찾기 기능) 하지만 글을 볼려구 일일이 써 넣을 수는 없으니 쉽게 접근할 수 있는 방법이
해당글에 순서를 부여하고 그 순서를 이용해서 글을 정렬 시키는거죠
// 선택된 메모가 있을시 데이타 뽑아오기;;
if($no) {
$now_data=mysql_fetch_array(mysql_query("select no,board_name,board_id,member_id,name,homepage,email,member_no,subject,memo,reg_date,file1,hit from member_get_memo where no='$no'"));
}
$now_data 는 글이 담기는 member_get_memo 의 데이터입니다
$now_data 라구 정의된 데이터들은 member_get_memo 테이블에서 불러오되 no='$no' 라는 값을 맞춰서
즉 no라는 필드에서 들어온 변수 ($no = 글 번호가 되겠죠 ) 에 맞게 해당 열에 써진 부분을 찾아 와라가 됩니다
select no,board_name,board_id,member_id,name,homepage,email,member_no,subject,memo,reg_date,file1,hit
이분은 member_get_memo 에서 $now_data로 불러들이는 필드의 종류입니다 만약에 여기에 없는 필드를
기입한다면 에러가 나겠죠 또한 테이블에는 있는 필드지만 위에 기재가 되어 있지 않다면 표기가 되지 않구요
저도 가끔 이부분에서 에러를 냅니다 하도 많이 고쳐 대서 ...
select * frim member_getmemo where no='$no'")); 와 같이 모든 필드의 값을 불러들여도 되지만
양이 많아질 때는 일일이 써주는게 더 효율적이라고 하더군요
$now_data[name] 은 글쓴이 $now_data[board_id] 는 글이 담긴 게시판 아이디 $now_data[memo]는 글내용
이런식으로 되겠죠
처음 쓴 글은 당연히 no필드에 1이 기입 되니 글번호 1번에 담긴걸 불러온다면 주소의 표시는 아래와 같이 됩니다
view.php?id=repter&no=1
여기서 &는 조건값들을 연결 시켜줍니다 게시판 아이디는 repter 이면서 글 번호 1인 값이 되는거죠
만약 카테고리가 지원 된다면
view.php?id=repter&category=1&no=1
과 같이 되겠죠
게시판에서 부여되는 조건값을 &로 연결고리로 넣어주는거죠
잠깐 팁
게시판을 디자인 하실 때 테이블 안에 테이블을 넣는 식으로 하시는게 속 시원하실 수도 있습니다
테이블 속성상 넓이가 지정되면 다음의 셀은 그 전 셀의 영향을 받게 되어 원하는 위치에 정렬이 되지 않습니다
또한 스타일 태그에 대해 한번쯤 필요한 페이지를 찾아서 봐두시길 바랍니다 (nowrap 으로 네이버나 야후에서
찾아 보시면 게시판에서 쓰일만한 스타일 태그들이 많이 나옵니다 )
원하는 스타일의 테이블을 만들었어도 게시판의 사이즈에 의해 정렬된 부분이 깨질 수 있습니다
또한 글을 쓸때 엔터를 치지 않은 또한 띄어 쓰기가 되지 않은 글이 들어오면 넓이 부분에서 게시판 크기를
벗어납니다 그러니 필요한 부분 부분을 적절히 스타일 태그를 넣어서 사용해야 합니다
특히 미니홈에 들어가는 게시판은 획일화된 사이즈의 레이아웃에만 쓰는게 아닌 여러가지의 레이아웃에
쓰여야 하기 때문에 사이즈의 변화에도 이상이 없어야 합니다
차후에는 리스트나 뷰파일의 아래부분
-------------------------------------
<?
// 출력
$loop_number=$total-($page-1)*$page_num;
while($now_data=mysql_fetch_array($result)) {
//글을 쓴 날짜;
$reg_date=date("Y/m/d H:i",$now_data[reg_date]);
?>
<!-- 여기서부터 글을 반복 시켜 줍니다 -->
---------------------------------------------
의 글을 쓴 날짜 밑에 부분에 $reg_date를 미리 지정해 준것 처럼 여러 사항을 지정해서 넣어 주게 됩니다
while 의 밖에서 소스를 적용하면 하나의 변수로 인식해서 같은 결과를 출력해 버리는 결과가 나오기도 합니다
그래서 while 안에서 필요한 소스를 넣어주게 됩니다 차후에 들어갈 소스는
멤버의 이름 아이콘과 만약 이름레이어를 쓰게 된다면 이름레이어에 관한 부분과 글을 읽고 리스트로 돌아 왔을
때 내가 읽었던 글이 어떤 글이였는지 표시해 주는 가상번호에 관한것등 필요한 부분 부분을 넣게 됩니다
올려진 파일을 점검해야 할 사항은 오류가 나지 않은 상태에서 list.php 파일에서 글제목을 클릭하고 들어갔을 때
해당 글이 업로드 된 그림과 같이 잘 나오는지 확인하며
그 아래에 있는 리스트에서 다시 다른 글로 넘어가는지 목록보기를 눌렀을 때
list.php 파일로 넘어 오는지 그리고 hit 수가 제대로 표기 되는지를 확인하시면 됩니다
댓글 9
-
예뜨락
2004.11.29 23:34
-
뜬구름
2004.11.30 00:08
예뜨락님 감사 드립니다...
메일로 보냈습니다... -
예뜨락
2004.11.29 19:33
글세요 ^^; 제가 써보지 않아서 뭐라 답해 드리긴 어렵구 글쓴 내용만으로 짐작해 보건데
멤버 값 혹은 데이터 값을 불러들이지 못하는거 같은데요 만약 회원 각 개인에게 나눠주는
형식이라고 가정할 때 각 회원의 값은 $data[no] 라고 가정할 때 자신의 글은 자신만
열람하거나 글을 쓰게 할려면 아래와 같이 하고
if($member[no]==$data[no] { 보여주구 싶은 내용}else{타회원은 접근 하실 수 없습니다}
레벨로 제한 해서 글을 쓰게 한다면
if($member[level]< 9) { 보여주구 싶은 내용이나 글쓰기}else{레벨 9 이상만 글을 쓰실 수 있습니다 }
같이 하면 될거 같은데 정확히 글만 보구는 모르겠네요 ^^; -
뜬구름
2004.11.29 21:57
예뜨락님 감사합니다...
일반스킨의 경우 관리자 모드에서 권한을 주었을때 그권한을 적용되잔아요.
그런데 이스킨은 다른것은 다적용되는데 글쓰기만 적용이되지 않습니다.
저의 경우 이스킨을 동호회 회비를 관리하는 입출금 장부로 사용할려고요,
그러니 회원들에게는 내용을 보여주고 글쓰기는 관리자만 할수있어야 하거든요
수고스럽더라도 한번 이스킨을 살려보시고 어떤파일에 어떤소스를 써야하는지 부탁드립니다..
꼭좀 부탁드립니다.... -
예뜨락
2004.11.27 20:17
고맙습니다 ^^
정리된 자료가 아닌 즉흥적으로 쓰는 글이라 다소 어수선합니다 -
뜬구름
2004.11.29 16:49
예드락님 수고 많이 하시네요.
완전 초보도 조금씩 공부가 되는것 같습니다...
하나 질문이 있습니다.
제가 대류님이 올린 가계부(용돈기입장) 스킨입니다. - zae님 스킨을 사용할려고 하는데요
관리자 모드에서 권한을 게시판 관리자만 글을쓸수있게 상위 레벨(1)로 설정해도
하위(9)레벨도 글이 등록 되네요.
대류님에게 질문 드려도 모르겠다는 답변이고요.
예뜨락님이 한번 살펴 보시고 해답을 좀 주시면 안될까요.
저에게는 이스킨이 꼭 필요한 스킨이거든요.
모든것은 잘작용 하는데 글쓰기 권한만 적용이 안됩니다.....
어떤 파일에 어떻게 소스를 넣어야 하는지 부탁 드립니다.
http://www.nzeo.com/bbs/zboard.php?id=cgi_zskins2&page=5&sn1=&divpage=3&category=30&sn=off&ss=on&sc=off&select_arrange=headnum&desc=asc&no=15309 -
안젤라
2004.11.27 04:32
오빠 정말 열심히 하시네요.
근데.. 왜 내이름이 없어요? 담엔 스샷준비할땐 미리 말하길..ㅋㅋ -
예뜨락
2004.11.27 04:36
안젤라 고맙고 담엔 대문짝 만하게 넣어줄께 배경화면 처리해서 -
밥아저씨
2004.11.27 14:36
저번부터 봐왔는데,
수고가 많으십니다 ^^
제목 | 글쓴이 | 날짜 |
---|---|---|
개판 오분전 라인 그래프 [4] | 미친개 | 2004.12.01 |
실명 진위여부 확인 [10] | piasol | 2004.12.01 |
나만의 미니홈 만들기 ㅡ write.php 파일과 write_ok [5] | 예뜨락 | 2004.11.30 |
나만의 미니홈 만들기 ㅡ view.php 파일과 제목링크 [9] | 예뜨락 | 2004.11.27 |
나만의 미니홈 만들기 ㅡ list.php , 디비 테이블 생성 [6] | 예뜨락 | 2004.11.26 |
나만의 미니홈 만들기 ㅡ 게시판 list.php 파일의 모양새 [6] | 예뜨락 | 2004.11.23 |
나만의 미니홈 만들기 ㅡ 게시판의 디자인 | 예뜨락 | 2004.11.22 |
나만의 미니홈 만들기 ㅡ 미니홈 생성 페이지 [3] | 예뜨락 | 2004.11.20 |
나만의 미니홈 만들기 ㅡ 기초적인 관리 페이지 [3] | 예뜨락 | 2004.11.20 |
나만의 미니홈 만들기 ㅡ 메인 기초 설계3 .레이아웃 [2] | 예뜨락 | 2004.11.19 |
나만의 미니홈 만들기 ㅡ 메인 기초 설계2 .레이아웃 | 예뜨락 | 2004.11.18 |
나만의 미니홈 만들기 ㅡ 글쓰기에 앞서... [1] | 예뜨락 | 2004.11.17 |
[타키의 초보강좌]PHP 기초 강좌 제 2탄[mysql로 들어가보자.] [2] | 타키 | 2004.10.24 |
소수[솟수] 쉽게 구하기[에라토스테네스의 해 알고리즘사용] , 경우의 수 구하기 [5] | 타키 | 2004.10.23 |
[타키의 초보강좌]PHP 기초 강좌 제 1탄[패스워드 인증] [8] | 타키 | 2004.10.23 |
www자동 붙히기 [8] | 미오유 | 2004.10.22 |
IP to 정수변환(;) [4] | 플로렐라 | 2004.10.21 |
한글자르는 문제 PHP차원에서 해결된 건가? [5] | 겜방 | 2004.10.20 |
MySQL의 패턴 매칭 맛보기 [2] | 손상모 | 2004.10.19 |
그래프 만들어주는 소스 [10] | 미친개 | 2004.10.15 |
급하시면 제 이메일로 현재 설치하신 걸 압축해서 보내주세요 한번 봐드릴께요
대신 몇일 걸릴거예요 이 이후에 써야될 글들도 있고 제 홈 소스도 고쳐야 되구
밥먹구 살기 위해서 일해야 하니 빈 시간이 그렇게 많이 나지는 않네요 ^^;;;
소스를 손본다 해도 정확히 원하는 형태의 답을 얻어내지 못할수도 있구요