웹마스터 팁

테스트 미니홈에는 메인 화면이 덩그러니 비워져 있습니다

오늘은 메인 화면에 최근 게시물을 뽑아 보겠습니다

아직은 파일 업로드에 관한것과  코멘트 부분과 다녀간 멤버에 대한 테이블을 생성하지 않았기에

추후에 코멘트 테이블을 생성하고 그림에 관한 업로드 부분이

해결되면 그 다음에 소스를 추가하기로 하구요 오늘은 기본적인 글만 뽑아 오는 부분만 해보겠습니다



아래는 소스입니다 되도록 단순하게 짰습니다



이하 소스

-------------------------------------------------------------------------------------------


<?


// 절대경로 리브파일 인크루드
   $_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 를 불러내면 화일문을 쓴 효과를 냅니다

일일이 화일문을 돌리지 않고 변수 처리해서 간단하게 쓸수 있습니다