new.php 에서 특정글만 뽑아오려면...

new.php 에서 특정글만 뽑아오려면...

QA

new.php 에서 특정글만 뽑아오려면...

본문

안녕하세요~

초보입니다ㅠㅠ

며칠 며칠 고생하다가 방법을 못찾아 이렇게 질문드립니다.

 

new.php 에서 wr_1 = '등록' 이렇게 된 게시글만 불러오려고 하니

잘안되네요.

 

$row2 = sql_fetch(" select * from {$tmp_write_table} where wr_id = '{$row['wr_id']}' and wr_1 = '등록'"); 

 

이렇게 했는데 

 

wr_1에 입력안된 게시글도 함께 나옵니다.

 

카운터에서 문제가 있는것같은데요. 이거 로직은 완전 새로 짜야하는지..ㅠ..ㅠ

 

그러니까 new.php 에서 한페이지에 보일 수를 10으로 정해놨을때

 

wr_1 = '등록'  이글만 10개가 나와야하는데 등록안된 글도 같이 카운터돼서 나오네요..

 

아... 이거 검색을 하루종일 해봐도 모르겠네요ㅠㅠ 아직 갈길이 멀어 혼자하기가 너무 힘듭니다ㅠㅠ

 

도움주시면 감사하겠습니다..!ㅜㅜ

이 질문에 댓글 쓰기 :

답변 6

참고할만한 소스를 더 올려주시겠어요?ㅎ 

 

저 쿼리대로라면 등록이라고 된것만 나오는게 맞는데...


<?php
include_once('./_common.php');

$g5['title'] = '새글';
include_once('./_head.php');

$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 ";

$gr_id = isset($_GET['gr_id']) ? $_GET['gr_id'] : "";
if ($gr_id) {
    $sql_common .= " and b.gr_id = '$gr_id' ";
}

$view = isset($_GET['view']) ? $_GET['view'] : "";

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 ";

$wr_1 = isset($_GET['wr_1']) ? strip_tags($_GET['wr_1']) : "";
if ($wr_1) {
    $sql_common .= " and a.wr_1 = '{$wr_1}' ";
}
$sql_order = " order by a.bn_id desc ";

$sql = " select count(*) as cnt {$sql_common} ";
$row = sql_fetch($sql);
$total_count = $row['cnt'];

$rows = $config['cf_new_rows'];
$total_page  = ceil($total_count / $rows);  // 전체 페이지 계산
if (!$page) $page = 1; // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $rows; // 시작 열을 구함

$group_select = '<label for="gr_id" class="sound_only">그룹</label><select name="gr_id" id="gr_id"><option value="">전체그룹';
$sql = " select gr_id, gr_subject from {$g5['group_table']} where gr_id = 'artist' 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>';

$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'];

    if ($row['wr_id'] == $row['wr_parent']) {

        // 원글
        $comment = "";
        $comment_link = "";
        $row2 = sql_fetch(" select * from {$tmp_write_table} where wr_id = '{$row['wr_id']}' and wr_1 = '등록'");
        $list[$i] = $row2;


        $name = get_sideview($row2['wr_1'], get_text(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);
        }

    } 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 wr_1, wr_name, wr_email, wr_homepage, wr_datetime from {$tmp_write_table} where wr_id = '{$row['wr_id']}' ");
        $list[$i] = $row2;
        $list[$i]['wr_id'] = $row['wr_id'];
        $list[$i]['wr_1'] = $row3['wr_1'];
        $list[$i]['wr_name'] = $row3['wr_name'];
        $list[$i]['wr_email'] = $row3['wr_email'];
        $list[$i]['wr_homepage'] = $row3['wr_homepage'];

        $name = get_sideview($row3['wr_1'], get_text(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);
        }

    }

    $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'].'&amp;wr_id='.$row2['wr_id'].$comment_link;
    $list[$i]['datetime'] = $datetime;
    $list[$i]['datetime2'] = $datetime2;

    $list[$i]['gr_subject'] = $row['gr_subject'];
    $list[$i]['bo_subject'] = $row['bo_subject'];
    $list[$i]['wr_subject'] = $row2['wr_subject'];
}

$write_pages = get_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, "?");

include_once($new_skin_path.'/album.skin.php');

include_once('./_tail.php');
?>





new.php 에서 건드린게 별로 없습니다ㅠㅠ

상단에 from {$g5['board_new_table']} a

이렇게 지정되어 있어서 a.wr_1 이 컬럼이 없다고 나옵니다~
Unknown column 'a.wr_1' in 'where clause'

각 게시판에서 wr_1 = '등록' 이걸 뽑아서 출력해야하는데 쉽지가 않네요ㅠㅠ

wr_1이라는 속성을 가지고 있는 테이블에 검색을 걸어야죠...

모래위님이 바로 위 댓글에 말씀하신거는 wr_1이 없는데 wr_1에서 등록이라고 된걸 뽑는다고 하시는거에요;;

그누보드를 안써서 변수설정이 어떻게 되어 있는지 모르지만 $sql_common에 들어간 a,b,c테이블에 wr_1이라는 컬럼이 들어가는 테이블이 없는건가요?

네 없습니다ㅠㅠ
소스에서 보면 그룹에서 게시판 목록을 갖고오고 뿌려주는거라...
초보는 오늘도 웁니다...ㅠㅠ 방법을 찾아봐야겠네요..
에고 시간내어주셔서 정말 감사합니다! 꾸벅... (_ _)

26라인 이전에 아래와 같이 추가해보세요.

$sql_common .= " and wr_1 = '등록' ";

안됩니다ㅠㅠ
select count(*) as cnt from g5_board_new a, g5_board b, g5_group c where a.bo_table = b.bo_table and b.gr_id = c.gr_id and b.bo_use_search = 1 and wr_1 = '등록'

1054 : Unknown column 'wr_1' in 'where clause'

이렇게 뜹니다.. 답변 감사드립니다! ㅠㅠ

잘 찾아보세요... 없을수가 없어요!!!

 

$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++) { 

 

이게 위에서부터 내려온 sql_common을 통해서 검색을 하는거에요.

 

이걸 $row에 저장을하죠.

 

그런데 아래쪽에 보면 

$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; $list[$i]['gr_subject'] = $row['gr_subject']; $list[$i]['bo_subject'] = $row['bo_subject']; 

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

 

이렇게 있어요.

 

이걸 보자면 $row만큼 for문을 돌려서 $row2에서 나온 wr_subject를 $list에 저장하는거에요.

 

즉 $row에서부터 wr_1을 걸러내지 않는다면 무조건 wr_1이 포함된게 나온다는거에요.

 

이것때문에 PWneo​님께서 위에 wr_1=등록 이거를 넣으라고 하신거에요~

new.php 파일에서 


        // 원글
        $comment = "";
        $comment_link = "";
        $row2 = sql_fetch(" select * from {$tmp_write_table} where wr_id = '{$row['wr_id']}' ");
        $list[$i] = $row2; 

 

위 부분을 아래와 같이 바꾸면 되지 않을까요?


        // 원글
        $comment = "";
        $comment_link = "";
        $row2 = sql_fetch(" select * from {$tmp_write_table} where wr_id = '{$row['wr_id']}' and wr_1='등록' ");
		if(!$row2['wr_id']) continue;
        $list[$i] = $row2; 

 

이렇게 수정하면 될 듯 싶은데요. 

드래곤된다님 답변 감사드립니다.

 

 

 

fdf3b93d24b28c22c3286f6376399272_1422003641_4114.jpg
 

위 처럼 뜹니다.

 

제일위에 있는게 wr_1 에 값이 없는 거구요.

 

아래 4개가 wr_1=등록 되어있는겁니다. 

 

환경설정에서 즉 $rows = $config['cf_new_rows']; 이걸 5개로 설정했구요.

 

아무쪼록 정말 감사드립니다..ㅠ..​ㅠ

그러면요.

 


        // 코멘트
        $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; 

 

위 부분도 아래처럼 변경해 줘 보세요.


        // 코멘트
        $comment = '[코] ';
        $comment_link = '#c_'.$row['wr_id'];
        $row2 = sql_fetch(" select * from {$tmp_write_table} where wr_id = '{$row['wr_parent']}' and wr_1='등록'");
		if(!$row2['wr_id']) continue;
        $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; 

 

이전 댓글 내용도 같이서 적용해 보세요.

답변을 작성하시기 전에 로그인 해주세요.
전체 123,158 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT