웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
나만의 미니홈 만들기 ㅡ 간단한 최근글 불러오기
2005.05.09 01:55
테스트 미니홈에는 메인 화면이 덩그러니 비워져 있습니다
오늘은 메인 화면에 최근 게시물을 뽑아 보겠습니다
아직은 파일 업로드에 관한것과 코멘트 부분과 다녀간 멤버에 대한 테이블을 생성하지 않았기에
추후에 코멘트 테이블을 생성하고 그림에 관한 업로드 부분이
해결되면 그 다음에 소스를 추가하기로 하구요 오늘은 기본적인 글만 뽑아 오는 부분만 해보겠습니다
아래는 소스입니다 되도록 단순하게 짰습니다
이하 소스
-------------------------------------------------------------------------------------------
<?
// 절대경로 리브파일 인크루드
$_zb_url = "제로보드가 설치된 url";
$_zb_path = "제로보드가 설치된 절대경로";
include $_zb_path."lib.php";
// DB 연결
if(!$connect) $connect=dbConn();
// 멤버정보 구하기
$member=member_info();
// 미니홈에 쓰이는 각종 변수를 mini_home_admin_table에서 불러옴;;
$data=mysql_fetch_array(mysql_query("select * from mini_home_admin_table where user_id='$id'"));
?>
<html>
<head>
<title>최근 게시물</title>
<meta name="generator" content="Namo WebEditor v4.0">
</head>
<body bgcolor="white" text="black" link="blue" vlink="purple" alink="red">
<p> </p>
<table align="center" border="0" cellpadding="0" cellspacing="0" width="516">
<tr>
<td width="251" height="150" align="center" valign="top">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td width="241" height="1" bgcolor="silver">
</td>
</tr>
<tr>
<td width="241" height="27" bgcolor="#F2F2F2" align="center" valign="middle">
새로운 게시물
</td>
</tr>
<tr>
<td width="241" height="1" bgcolor="silver">
</td>
</tr>
<?
$new_result=mysql_query("SELECT * FROM member_get_memo WHERE member_id ='$data[user_id]'order by no desc limit 5");
while($new_data=mysql_fetch_array($new_result))
{
?>
<tr>
<td style='word-break:break-all;' style=cursor:hand;
onclick=location.href="view.php?id=<?=$new_data[board_id]?>&no=<?=$new_data[no] ?>" width="100%" onMouseOver=this.style.backgroundColor="#FFF5F5" onMouseOut=this.style.backgroundColor="">
<a href="view.php?id=<?=$new_data[board_id]?>&no=<?=$new_data[no] ?>">
<? echo "·[".date('m/d',$new_data[reg_date])."]"." ". $new_data[subject] = cut_str
($new_data[subject],10). " ".$new_data[name] = cut_str($new_data[name],5);?></a>
</td>
</tr>
<?}?>
</table>
</td>
<td width="13" height="150" align="center" valign="top">
<p> </p>
</td>
<td width="251" height="150" align="center" valign="top">
<!--차후에 소스 적용시 이곳을 통째로 바꿔 주세요 -->
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td width="241" height="1" bgcolor="silver">
</td>
</tr>
<tr>
<td width="241" height="27" bgcolor="#F2F2F2" align="center" valign="middle">
새로운 그림
</td>
</tr>
<tr>
<td width="241" height="1" bgcolor="silver">
</td>
</tr>
<tr>
<td width="241" height="122">
<p> </p>
</td>
</tr>
</table>
<!--차후에 소스 적용시 이곳을 통째로 바꿔 주세요 -->
</td>
</tr>
<tr>
<td width="251" height="15" align="center" valign="top">
<p> </p>
</td>
<td width="13" height="15" align="center" valign="top">
<p> </p>
</td>
<td width="251" height="15" align="center" valign="top">
<p> </p>
</td>
</tr>
<tr>
<td width="251" height="151" align="center" valign="top">
<!--차후에 소스 적용시 이곳을 통째로 바꿔 주세요 -->
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td width="241" height="1" bgcolor="silver">
</td>
</tr>
<tr>
<td width="241" height="27" bgcolor="#F2F2F2" align="center" valign="middle">
새로운 코멘트
</td>
</tr>
<tr>
<td width="241" height="1" bgcolor="silver">
</td>
</tr>
<tr>
<td width="241" height="122">
<p> </p>
</td>
</tr>
</table>
<!--차후에 소스 적용시 이곳을 통째로 바꿔 주세요 -->
</td>
<td width="13" height="151" align="center" valign="top">
<p> </p>
</td>
<td width="251" height="151" align="center" valign="top">
<!--차후에 소스 적용시 이곳을 통째로 바꿔 주세요 -->
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td width="241" height="1" bgcolor="silver">
</td>
</tr>
<tr>
<td width="241" height="27" bgcolor="#F2F2F2" align="center" valign="middle">
최근 다녀간 멤버
</td>
</tr>
<tr>
<td width="241" height="1" bgcolor="silver">
</td>
</tr>
<tr>
<td width="241" height="122">
<p> </p>
</td>
</tr>
</table>
<!--차후에 소스 적용시 이곳을 통째로 바꿔 주세요 -->
</td>
</tr>
</table>
<p> </p>
</body>
</html>
-------------------------------------------------------------------------------------------
이상 소스
내동 보셔서 아시겠지만 상단 부분은 디비를 연결 시키고 회원 정보를 얻어 오는 부분을 정의해 줬습니다
중요한 부분은 게시물을 뽑는 소스입니다
<?
$new_result=mysql_query("SELECT * FROM member_get_memo2 WHERE member_id ='$data[user_id]'order by no desc limit 5");
while($new_data=mysql_fetch_array($new_result))
{
?>
<tr>
<td style='word-break:break-all;' style=cursor:hand;
onclick=location.href="view.php?id=<?=$new_data[board_id]?>&no=<?=$new_data[no] ?>" width="100%"
onMouseOver=this.style.backgroundColor="#FFF5F5" onMouseOut=this.style.backgroundColor="">
<a href="view.php?id=<?=$new_data[board_id]?>&no=<?=$new_data[no] ?>">
<? echo "·[".date('m/d',$new_data[reg_date])."]"." ". $new_data[subject] = cut_str($new_data[subject],10). " ".$new_data[name] = cut_str($new_data[name],5);?></a>
</td>
</tr>
<?}?>
정리하자면
$new_result=mysql_query("SELECT * FROM member_get_memo WHERE member_id ='$data[user_id]'order by no desc limit 5");
$new_result 라는 변수에 mysql_query("SELECT * FROM member_get_memo2 WHERE member_id ='$data[user_id]'order by no desc limit 5");
를 대입 시킵니다
정확한 설명인지는 모르겠지만
$변수= 상황;
이런식으로 정의해 준다면 $변수 라는 곳에 상황이란 것을 대입시켜서 실행합니다
$변수= "상황";
위와 같은 식에서는 상황을 문자열로 받아 옵니다
mysql_query("SELECT * FROM member_get_memo WHERE member_id ='$data[user_id]'order by no desc limit 5");
member_get_memo 라는 테이블에서 * 모든필드에서 불러오되 WHERE member_id ='$data[user_id]'
member_id 라는 필드를 이용해서 $data[user_id] 인 것만 불러오는데 order by no desc limit 5
no 필드를 기준으로 내림차순으로 5개를 뽑아와라
정리하자면 member_get_memo 테이블에서 홈주인과 같은 것만 번호 역순으로 5개를 뽑아와라 입니다
while($new_data=mysql_fetch_array($new_result))
{
$new_data[필드명]
}
$new_data=mysql_fetch_array($new_result))
$new_data 라는 변수에 mysql_fetch_array를 이용해 배열을 만들어줍니다
while문을 이용해서 $new_data 의 변수에 배열을 넣어주구요
그안에서 $new_data[필드명]을 출력해 주는거죠
필드명에 name 을 집어 넣으면 이름을 출력해 주구 memo 를 집어 넣으면 메모를 subject 를 넣으면
제목을 뽑아오겠죠
배열에 관한 것은 따로 공부하시길 바랍니다 행복한 고니님이 설명을 잘해 놓으셨으니 행복한 고니님 이름으로
이게시판에서 검색해 보세요
<td style='word-break:break-all;' style=cursor:hand;
onclick=location.href="view.php?id=<?=$new_data[board_id]?>&no=<?=$new_data[no] ?>" width="100%"
onMouseOver=this.style.backgroundColor="#FFF5F5" onMouseOut=this.style.backgroundColor="">
글 제목이 아닌 테이블을 눌렀을 때 타겟을 넘겨주는 html 소스입니다
<a href="view.php?id=<?=$new_data[board_id]?>&no=<?=$new_data[no] ?>">
<? echo "·[".date('m/d',$new_data[reg_date])."]"." ". $new_data[subject] = cut_str
($new_data[subject],10). " ".$new_data[name] = cut_str($new_data[name],5);?></a>
<a href="view.php?id=보드 아이디&no=글번호">
· 작은 도트 문자 그림을 넣어줘도 됩니다
[".date('m/d',$new_data[reg_date])."]
$new_data[reg_date] 글쓴 날짜를 불러오는데 월/일 형식으로 불러옵니다
띄어쓰기
$new_data[subject] = cut_str($new_data[subject],10)
제목에서 10글자만 잘라서 뽑아 옵니다 10글자가 넘으면 점점점( ... ) 과 같이 보여지는 글자 이상의
글이 있음으로 표기됩니다
띄어쓰기
$new_data[name] = cut_str($new_data[name],5);?>
이름도 위와 같은식으로 이름이 5글자를 넘어서면 5글자만 보여주구 나머지는 ... 으로 표기됩니다
</a>
잠깐 팁을 드린다면
화일문으로 돌릴때 그 안에 있는 소스를 따로 변수로 만들어 화일문 밖에서 이용하구 싶을 때가 있습니다
그 때는 아래와 같이 점 하나만 찍어 주면 됩니다
while($new_data=mysql_fetch_array($new_result))
{
$new_data[필드명]
$a.= "$a에 사용될 부분에 대한 정의";
}
위와 같이 하고 필요한 곳에 $a 를 불러내면 화일문을 쓴 효과를 냅니다
일일이 화일문을 돌리지 않고 변수 처리해서 간단하게 쓸수 있습니다
오늘은 메인 화면에 최근 게시물을 뽑아 보겠습니다
아직은 파일 업로드에 관한것과 코멘트 부분과 다녀간 멤버에 대한 테이블을 생성하지 않았기에
추후에 코멘트 테이블을 생성하고 그림에 관한 업로드 부분이
해결되면 그 다음에 소스를 추가하기로 하구요 오늘은 기본적인 글만 뽑아 오는 부분만 해보겠습니다
아래는 소스입니다 되도록 단순하게 짰습니다
이하 소스
-------------------------------------------------------------------------------------------
<?
// 절대경로 리브파일 인크루드
$_zb_url = "제로보드가 설치된 url";
$_zb_path = "제로보드가 설치된 절대경로";
include $_zb_path."lib.php";
// DB 연결
if(!$connect) $connect=dbConn();
// 멤버정보 구하기
$member=member_info();
// 미니홈에 쓰이는 각종 변수를 mini_home_admin_table에서 불러옴;;
$data=mysql_fetch_array(mysql_query("select * from mini_home_admin_table where user_id='$id'"));
?>
<html>
<head>
<title>최근 게시물</title>
<meta name="generator" content="Namo WebEditor v4.0">
</head>
<body bgcolor="white" text="black" link="blue" vlink="purple" alink="red">
<p> </p>
<table align="center" border="0" cellpadding="0" cellspacing="0" width="516">
<tr>
<td width="251" height="150" align="center" valign="top">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td width="241" height="1" bgcolor="silver">
</td>
</tr>
<tr>
<td width="241" height="27" bgcolor="#F2F2F2" align="center" valign="middle">
새로운 게시물
</td>
</tr>
<tr>
<td width="241" height="1" bgcolor="silver">
</td>
</tr>
<?
$new_result=mysql_query("SELECT * FROM member_get_memo WHERE member_id ='$data[user_id]'order by no desc limit 5");
while($new_data=mysql_fetch_array($new_result))
{
?>
<tr>
<td style='word-break:break-all;' style=cursor:hand;
onclick=location.href="view.php?id=<?=$new_data[board_id]?>&no=<?=$new_data[no] ?>" width="100%" onMouseOver=this.style.backgroundColor="#FFF5F5" onMouseOut=this.style.backgroundColor="">
<a href="view.php?id=<?=$new_data[board_id]?>&no=<?=$new_data[no] ?>">
<? echo "·[".date('m/d',$new_data[reg_date])."]"." ". $new_data[subject] = cut_str
($new_data[subject],10). " ".$new_data[name] = cut_str($new_data[name],5);?></a>
</td>
</tr>
<?}?>
</table>
</td>
<td width="13" height="150" align="center" valign="top">
<p> </p>
</td>
<td width="251" height="150" align="center" valign="top">
<!--차후에 소스 적용시 이곳을 통째로 바꿔 주세요 -->
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td width="241" height="1" bgcolor="silver">
</td>
</tr>
<tr>
<td width="241" height="27" bgcolor="#F2F2F2" align="center" valign="middle">
새로운 그림
</td>
</tr>
<tr>
<td width="241" height="1" bgcolor="silver">
</td>
</tr>
<tr>
<td width="241" height="122">
<p> </p>
</td>
</tr>
</table>
<!--차후에 소스 적용시 이곳을 통째로 바꿔 주세요 -->
</td>
</tr>
<tr>
<td width="251" height="15" align="center" valign="top">
<p> </p>
</td>
<td width="13" height="15" align="center" valign="top">
<p> </p>
</td>
<td width="251" height="15" align="center" valign="top">
<p> </p>
</td>
</tr>
<tr>
<td width="251" height="151" align="center" valign="top">
<!--차후에 소스 적용시 이곳을 통째로 바꿔 주세요 -->
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td width="241" height="1" bgcolor="silver">
</td>
</tr>
<tr>
<td width="241" height="27" bgcolor="#F2F2F2" align="center" valign="middle">
새로운 코멘트
</td>
</tr>
<tr>
<td width="241" height="1" bgcolor="silver">
</td>
</tr>
<tr>
<td width="241" height="122">
<p> </p>
</td>
</tr>
</table>
<!--차후에 소스 적용시 이곳을 통째로 바꿔 주세요 -->
</td>
<td width="13" height="151" align="center" valign="top">
<p> </p>
</td>
<td width="251" height="151" align="center" valign="top">
<!--차후에 소스 적용시 이곳을 통째로 바꿔 주세요 -->
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td width="241" height="1" bgcolor="silver">
</td>
</tr>
<tr>
<td width="241" height="27" bgcolor="#F2F2F2" align="center" valign="middle">
최근 다녀간 멤버
</td>
</tr>
<tr>
<td width="241" height="1" bgcolor="silver">
</td>
</tr>
<tr>
<td width="241" height="122">
<p> </p>
</td>
</tr>
</table>
<!--차후에 소스 적용시 이곳을 통째로 바꿔 주세요 -->
</td>
</tr>
</table>
<p> </p>
</body>
</html>
-------------------------------------------------------------------------------------------
이상 소스
내동 보셔서 아시겠지만 상단 부분은 디비를 연결 시키고 회원 정보를 얻어 오는 부분을 정의해 줬습니다
중요한 부분은 게시물을 뽑는 소스입니다
<?
$new_result=mysql_query("SELECT * FROM member_get_memo2 WHERE member_id ='$data[user_id]'order by no desc limit 5");
while($new_data=mysql_fetch_array($new_result))
{
?>
<tr>
<td style='word-break:break-all;' style=cursor:hand;
onclick=location.href="view.php?id=<?=$new_data[board_id]?>&no=<?=$new_data[no] ?>" width="100%"
onMouseOver=this.style.backgroundColor="#FFF5F5" onMouseOut=this.style.backgroundColor="">
<a href="view.php?id=<?=$new_data[board_id]?>&no=<?=$new_data[no] ?>">
<? echo "·[".date('m/d',$new_data[reg_date])."]"." ". $new_data[subject] = cut_str($new_data[subject],10). " ".$new_data[name] = cut_str($new_data[name],5);?></a>
</td>
</tr>
<?}?>
정리하자면
$new_result=mysql_query("SELECT * FROM member_get_memo WHERE member_id ='$data[user_id]'order by no desc limit 5");
$new_result 라는 변수에 mysql_query("SELECT * FROM member_get_memo2 WHERE member_id ='$data[user_id]'order by no desc limit 5");
를 대입 시킵니다
정확한 설명인지는 모르겠지만
$변수= 상황;
이런식으로 정의해 준다면 $변수 라는 곳에 상황이란 것을 대입시켜서 실행합니다
$변수= "상황";
위와 같은 식에서는 상황을 문자열로 받아 옵니다
mysql_query("SELECT * FROM member_get_memo WHERE member_id ='$data[user_id]'order by no desc limit 5");
member_get_memo 라는 테이블에서 * 모든필드에서 불러오되 WHERE member_id ='$data[user_id]'
member_id 라는 필드를 이용해서 $data[user_id] 인 것만 불러오는데 order by no desc limit 5
no 필드를 기준으로 내림차순으로 5개를 뽑아와라
정리하자면 member_get_memo 테이블에서 홈주인과 같은 것만 번호 역순으로 5개를 뽑아와라 입니다
while($new_data=mysql_fetch_array($new_result))
{
$new_data[필드명]
}
$new_data=mysql_fetch_array($new_result))
$new_data 라는 변수에 mysql_fetch_array를 이용해 배열을 만들어줍니다
while문을 이용해서 $new_data 의 변수에 배열을 넣어주구요
그안에서 $new_data[필드명]을 출력해 주는거죠
필드명에 name 을 집어 넣으면 이름을 출력해 주구 memo 를 집어 넣으면 메모를 subject 를 넣으면
제목을 뽑아오겠죠
배열에 관한 것은 따로 공부하시길 바랍니다 행복한 고니님이 설명을 잘해 놓으셨으니 행복한 고니님 이름으로
이게시판에서 검색해 보세요
<td style='word-break:break-all;' style=cursor:hand;
onclick=location.href="view.php?id=<?=$new_data[board_id]?>&no=<?=$new_data[no] ?>" width="100%"
onMouseOver=this.style.backgroundColor="#FFF5F5" onMouseOut=this.style.backgroundColor="">
글 제목이 아닌 테이블을 눌렀을 때 타겟을 넘겨주는 html 소스입니다
<a href="view.php?id=<?=$new_data[board_id]?>&no=<?=$new_data[no] ?>">
<? echo "·[".date('m/d',$new_data[reg_date])."]"." ". $new_data[subject] = cut_str
($new_data[subject],10). " ".$new_data[name] = cut_str($new_data[name],5);?></a>
<a href="view.php?id=보드 아이디&no=글번호">
· 작은 도트 문자 그림을 넣어줘도 됩니다
[".date('m/d',$new_data[reg_date])."]
$new_data[reg_date] 글쓴 날짜를 불러오는데 월/일 형식으로 불러옵니다
띄어쓰기
$new_data[subject] = cut_str($new_data[subject],10)
제목에서 10글자만 잘라서 뽑아 옵니다 10글자가 넘으면 점점점( ... ) 과 같이 보여지는 글자 이상의
글이 있음으로 표기됩니다
띄어쓰기
$new_data[name] = cut_str($new_data[name],5);?>
이름도 위와 같은식으로 이름이 5글자를 넘어서면 5글자만 보여주구 나머지는 ... 으로 표기됩니다
</a>
잠깐 팁을 드린다면
화일문으로 돌릴때 그 안에 있는 소스를 따로 변수로 만들어 화일문 밖에서 이용하구 싶을 때가 있습니다
그 때는 아래와 같이 점 하나만 찍어 주면 됩니다
while($new_data=mysql_fetch_array($new_result))
{
$new_data[필드명]
$a.= "$a에 사용될 부분에 대한 정의";
}
위와 같이 하고 필요한 곳에 $a 를 불러내면 화일문을 쓴 효과를 냅니다
일일이 화일문을 돌리지 않고 변수 처리해서 간단하게 쓸수 있습니다
댓글 6
-
김기엽
2005.05.09 14:50
-
나라
2005.05.11 21:37
예뜨락님 수고하십니다... -
나라
2005.05.11 22:35
이걸 적용하고싶지만
delete.php의 버그가 있어서 고친후 적용하도록 해야겠네요..
버그내용은 비회원이 글 삭제하면
비밀번호 안묻고 바로삭제되는버그예요
설치된주소는
http://tmspr.greenhost.co.kr/mini/list.php?id=repter
이구요.. 혹시 시간남으신다면 좀 봐주세요..
그럼 수고하세요..^^* -
예뜨락
2005.05.12 02:27
고치셨나보네요 비번 묻고 삭제 기능 잘되는데요 ^^;; -
나라
2005.05.12 19:28
예뜨락//아.. 고쳤는데 미쳐 코멘트삭제를 못했군요..죄송합니다..^^* -
다니
2005.05.20 16:00
예전보다 좋아졌네요..
소스.. 감사합니다. ㅋㅋ
전보다 미니홈이 훨 정리가 된듯하네요
아직은 구석구석 기능이 다 된것 같지는 않지만
기대하고 있습니다. 공개되는 그날까지