추천 스크랩 관련 문의드립니다

추천 스크랩 관련 문의드립니다

QA

추천 스크랩 관련 문의드립니다

본문

제가 추천 누른 게시물을 모아보는 good2.php를 만들었는데요 

스크랩 팝업창처럼 보여지는것처럼요

근데 이 추천누른 게시물중 

 

스크랩한 글은 목록에 안나타나게 하고싶습니다 

물론 추천을 눌렀음에도 불구하고요 

 스크랩 했을경우는 안보이게 하고싶은데요 

일반 게시판에서는 리스트에 아이콘관련하여 아래 코드를 넣으면 되었거든요

 

    $is_scrap = sql_fetch(" select count(*) as cnt from {$g5['scrap_table']} 

                where mb_id = '{$member['mb_id']}'

                and bo_table = '$bo_table'

                and wr_id = '{$list[$i]['wr_id']}'");


  <?php 

 if (!$is_scrap['cnt'])  ~~~


?>

 

 

good2.php에서는 어떻게 낑겨 넣어야될지 모르겠어여 

 

아래는 good2.php  코드입니다 

 


 
<?php
include_once('./_common.php');
 
if (!$is_member)
    alert_close('회원만 조회하실 수 있습니다.');
 
  $g5['title'] = get_text($member['mb_nick']).'님의 추천함';
include_once(G5_PATH.'/head.sub.php');
      
 
 
$sql_common = "(SELECT b.*  
FROM g5_board as a , g5_board_good as b 
WHERE a.gr_id='gr_1'
AND a.bo_table=b.bo_table
AND b.mb_id = '".$member['mb_id']."' 
AND b.bg_flag = 'good') ";
 
 
$sql = "select count(*) as cnt from ($sql_common) as c  ";
$row = sql_fetch($sql);
$total_count = $row['cnt'];
 
 
$rows = $config['cf_page_rows'];
$total_page  = ceil($total_count / $rows);  // 전체 페이지 계산
if ($page < 1) $page = 1; // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $rows; // 시작 열을 구함
 
$list = array();
 
$sql = " select *
            from ($sql_common) as c 
 
           $sql_order
            limit $from_record, $rows ";
 
 
            
 
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
 
   
    $list[$i] = $row;
 
// 순차적인 번호 (순번)
    $num = $total_count - ($page - 1) * $rows - $i;
    
 // 게시판 제목
     $sql2 = " select bo_subject from {$g5['board_table']} where bo_table = '{$row['bo_table']}' ";
 
    $row2 = sql_fetch($sql2);
    if (!$row2['bo_subject']) $row2['bo_subject'] = '[게시판 없음]';
 
    // 게시물 제목
    $tmp_write_table = $g5['write_prefix'] . $row['bo_table'];
    $sql3 = " select wr_subject from $tmp_write_table where wr_id = '{$row['wr_id']}' ";
    $row3 = sql_fetch($sql3, FALSE);
    $subject = get_text(cut_str($row3['wr_subject'], 100));
    if (!$row3['wr_subject'])
        $row3['wr_subject'] = '[글 없음]';
 
   
    $list[$i]['num'] = $num;
    $list[$i]['opener_href'] = './board.php?bo_table='.$row['bo_table'];
    $list[$i]['opener_href_wr_id'] = './board.php?bo_table='.$row['bo_table'].'&wr_id='.$row['wr_id'];
    $list[$i]['bo_subject'] = $row2['bo_subject'];
    $list[$i]['subject'] = $subject;
     $list[$i]['wr_1'] = $wr_1;
 
    $list[$i]['del_href'] = './scrap_delete.php?ms_id='.$row['ms_id'].'&page='.$page;
 
    
}
 
 
include_once($member_skin_path.'/good.skin.php');
 
include_once(G5_PATH.'/tail.sub.php');
?>
 

 

도움좀 부탁드립니다~~


이 질문에 댓글 쓰기 :

답변 2


/*
if (!$is_scrap['cnt'])  ~~~ 를 이용하지 않으시고 
sql 문에서 left join 을 이용하는 방법도 있습니다.
*/
$sql_common = "( SELECT b.*  
FROM g5_board as a 
INNER JOIN g5_board_good as b
ON ( a.bo_table=b.bo_table )
LEFT JOIN g5_scrap as c
ON ( b.bo_table=c.bo_table AND b.wr_id=c.wr_id AND b.mb_id=c.mb_id)
WHERE a.gr_id='gr_1'
AND b.mb_id = '".$member['mb_id']."' 
AND b.bg_flag = 'good'
AND b.mb_id <> c.mb_id ) "; 
 


  <?php 

 if (!$is_scrap['cnt'])  ~~~


?>



이 부분이 핵심인것 같습니다.


하지만 이런식으로 처리하게 되면 한 페이지 컨텐츠 수가 20개이고 스크랩된 게시물이 그중 2개라면 한페이지에 18개의 컨텐츠밖에 보이지 않을 것입니다.


이 경우에는


$sql_common = "(SELECT b.*  
FROM g5_board as a , g5_board_good as b 
WHERE a.gr_id='gr_1'
AND a.bo_table=b.bo_table
AND b.mb_id = '".$member['mb_id']."' 
AND b.bg_flag = 'good') ";

 

이 부분에 대해서 수정 작업이 이루어 져야 할 것으로 보입니다.,

 

$sql_common 쿼리를 보시면 현재 두개의 테이블(g5_board, g5_board_good)을 조인시켜 쿼리를 작성하였죠?

 

$sql_common 쿼리 안에 group by와 having절을 써서 처리하셔도 될것 같고,

 

if else 같은 조건문을 줘서 쿼리를 수정할 수 있는 방법도 있을 것입니다.

 

간단한 문제에 로드맵을 제시해드리는 것이 Q&A 게시판의 취지와 맞지 않나 싶어 이렇게 답답한 마음에 힌트 간단히 드리고 갑니다!

 

 

 

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

회원로그인

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