테스트 사이트 - 개발 중인 베타 버전입니다

회원 아이디와 게시글 여분필드 값이 같으면 내가쓴글 에 출력하기 채택완료

더인찌 5년 전 조회 2,145

new.php를 이용하여 내가 쓴글을 출력하게 만들었습니다. 
아래는 해당 코드입니다. 

(+) 여기서 기능을 추가하고 싶은데 회원아이디가 사업자번호 10자리로 구성되겠끔 번호로 이루어져 있습니다. 
그리고 게시판 글쓰기 페이지에 여분필드 wr_12를 추가하여 사업자번호를 넣을 수 있게 했습니다.

그래서 회원 아이디 = wr_12 가 되면 내가 쓴글 목록에 추가하고 싶습니다. 

고수님들 도와주세요~

 

</p>

<p><?

include_once("./_common.php");</p>

<p>$g5[title] = "최근 게시물"; 

include_once("./_head.php"); </p>

<p>$mb_id = $_GET['mb_id']; 

if(!$mb_id){ 

$mb_id = $_POST['mb_id']; 

if(!$mb_id){ 

$mb_id = $member[mb_id]; 

} 

} </p>

<p>$gr_id = "";

if(!$view){$view = "w";}</p>

<p>    $sql_common = " from {$g5['board_new_table']} a, {$g5['board_table']} b, {$g5['group_table']} c where a.bo_table = b.bo_table and b.gr_id = c.gr_id and b.bo_use_search = 1 ";

if ($gr_id)

    $sql_common .= " and b.gr_id = '$gr_id' ";

if ($view == "w")

    $sql_common .= " and a.wr_id = a.wr_parent ";

else if ($view == "c")

    $sql_common .= " and a.wr_id <> a.wr_parent ";

if ($mb_id)

    $sql_common .= " and a.mb_id = '$mb_id' ";

$sql_order = " order by a.bn_id desc ";</p>

<p>$sql = " select count(*) as cnt $sql_common ";

$row = sql_fetch($sql);

$total_count = $row[cnt];</p>

<p>$rows = $config[cf_new_rows];

$total_page  = ceil($total_count / $rows);  // 전체 페이지 계산

if (!$page) $page = 1; // 페이지가 없으면 첫 페이지 (1 페이지)

$from_record = ($page - 1) * $rows; // 시작 열을 구함</p>

<p>$group_select = "<select name=gr_id id=gr_id onchange='select_change();'><option value=''>전체그룹";

$sql = " select gr_id, gr_subject from $g5[group_table] order by gr_id ";

$result = sql_query($sql);

for ($i=0; $row=sql_fetch_array($result); $i++) 

{

    $group_select .= "<option value='$row[gr_id]'>$row[gr_subject]";

}

$group_select .= "</select>";</p>

<p>

$list = array();

$sql = " select a.*, b.bo_subject, c.gr_subject, c.gr_id

          $sql_common

          $sql_order

          limit $from_record, $rows ";

$result = sql_query($sql);

for ($i=0; $row=sql_fetch_array($result); $i++) 

{

    $tmp_write_table = $g5[write_prefix] . $row[bo_table];</p>

<p>    if ($row[wr_id] == $row[wr_parent]) // 원글

    {

        $comment = "";

        $comment_link = "";

        $row2 = sql_fetch(" select * from $tmp_write_table where wr_id = '$row[wr_id]' ");

        $list[$i] = $row2;</p>

<p>        $name = get_sideview($row2[mb_id], cut_str($row2[wr_name], $config[cf_cut_name]), $row2[wr_email], $row2[wr_homepage]);

        // 당일인 경우 시간으로 표시함

        $datetime = substr($row2[wr_datetime],0,10);

        $datetime2 = $row2[wr_datetime];

        if ($datetime == $g5[time_ymd])

            $datetime2 = substr($datetime2,11,5);

        else

            $datetime2 = substr($datetime2,5,5);</p>

<p>    }

    else // 코멘트

    {

        $comment = "[코] ";

        $comment_link = "#c_{$row[wr_id]}";

        $row2 = sql_fetch(" select * from $tmp_write_table where wr_id = '$row[wr_parent]' ");

        $row3 = sql_fetch(" select mb_id, wr_name, wr_email, wr_homepage, wr_datetime from $tmp_write_table where wr_id = '$row[wr_id]' ");

        $list[$i] = $row2;

        $list[$i][mb_id] = $row3[mb_id];

        $list[$i][wr_name] = $row3[wr_name];

        $list[$i][wr_email] = $row3[wr_email];

        $list[$i][wr_homepage] = $row3[wr_homepage];</p>

<p>        $name = get_sideview($row3[mb_id], cut_str($row3[wr_name], $config[cf_cut_name]), $row3[wr_email], $row3[wr_homepage]);

        // 당일인 경우 시간으로 표시함

        $datetime = substr($row3[wr_datetime],0,10);

        $datetime2 = $row3[wr_datetime];

        if ($datetime == $g5[time_ymd])

            $datetime2 = substr($datetime2,11,5);

        else

            $datetime2 = substr($datetime2,5,5);

    }</p>

<p>    $list[$i][gr_id] = $row[gr_id];

    $list[$i][bo_table] = $row[bo_table];

    $list[$i][name] = $name;

    $list[$i][comment] = $comment;

    $list[$i][href] = "./board.php?bo_table=$row[bo_table]&wr_id=$row2[wr_id]{$comment_link}";

    $list[$i][datetime] = $datetime;

    $list[$i][datetime2] = $datetime2;</p>

<p>    $list[$i][gr_subject] = $row[gr_subject];

    $list[$i][bo_subject] = $row[bo_subject];

    $list[$i][wr_subject] = $row2[wr_subject];

}</p>

<p>$write_pages = get_paging($config[cf_write_pages], $page, $total_page, "{$PHP_SELF}?view=$view&page=");</p>

<p>$new_skin_path = "$g5[path]/skin/new/$config[cf_new_skin]";</p>

<p>echo "<script type=\"text/javascript\" src=\"$g5[path]/js/sideview.js\"></script>\n";</p>

<p>?></p>

<p>                <!-- board_list-->

                <table border="0" cellspacing="0" cellpadding="0">

                    <tr>

                        <th scope="col" class="title_divide">게시판</th>

                        <th scope="col" class="title_title">제목</th>

                        <th scope="col" class="title_date">등록일</th>

                    </tr></p>

<p>                    <?

for ($i=0; $i<count($list); $i++) 

{

    $gr_subject = $list[$i][gr_subject];

    $bo_subject = $list[$i][bo_subject];

    $wr_subject = get_text($list[$i][wr_subject]);</p>

<p>    echo <<<HEREDOC

<tr> 

    <td class="divide">{$bo_subject}</td>

    <td class="title"><a href='/bbs/{$list[$i][href]}'>{$list[$i][comment]}{$wr_subject}</a></td>

    <td class="date">{$list[$i][datetime2]}</td>

</tr>

HEREDOC;

}

?></p>

<p><? if ($i == 0) { ?>

<tr><td colspan="3" height=50 align=center>게시물이 없습니다.</td></tr>

<? } ?></p>

<p>                </table>

                <?=$write_pages?></p>

<p>

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

채택된 답변
+20 포인트
5년 전

1) for 문, 원글 부분의 다음 코드를 조금 수정하면 될 듯 합니다.

$row2 = sql_fetch(" select * from $tmp_write_table where wr_id = '$row[wr_id]' ");

->
$row2 = sql_fetch(" select * from $tmp_write_table where (wr_id = '$row[wr_id]' or wr_12 = '$mb_id') ");

 

2) 상단의 다음 코드는 삭제?? 해야 될 듯 싶습니다.

if ($mb_id)
    $sql_common .= " and a.mb_id = '$mb_id' ";

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

더인찌
5년 전
감사합니다! 그런데 추출한 리스트의 게시글이 같은 게시글인데도 반복 출력이 됩니다. 이부분 혹시 왜그런지 아실까욤?
$row2 = sql_fetch(" select * from $tmp_write_table where (wr_12 = '$mb_id') ");

이렇게 변경했더니 같은 게시글이 13페이지나 생겼습니다.
마르스컴퍼니
5년 전
그 부분까지는 잘 모르겠습니다.

문제가 있다면.. 로직을 완전히 새로 구성/적용해야 될 것 같기도 합니다.
다만, 조금 복잡할 수 있고.. 새로 등록되는 글부터 적용됩니다. (과거글에도 적용하려면 수동으로 최신글 테이블에 값 insert 필요)

1) 최신글 테이블 (g5_board_new) 에 wr_12 칼럼 추가

2) 게시글 등록 처리페이지(/bbs/write_update.php)에서 최신글 테이블에 insert하는 구문 수정. wr_12 값을 최신글 테이블에도 저장

3) 위 소스의 상단 구문을 다음으로 수정. for문 안은 원 소스로 복원
if ($mb_id)
$sql_common .= " and a.mb_id = '$mb_id' ";

->

if ($mb_id)
$sql_common .= " and (a.mb_id = '$mb_id' or a.wr_12 = '$mb_id') ";

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인