sql 문장 문의드립니다

sql 문장 문의드립니다

QA

sql 문장 문의드립니다

본문

추천 누른 게시물을 불러오는 쿼리 문장인데요 

 

$query = sql_query("SELECT * FROM g5_board_good WHERE mb_id = '".$member['mb_id']."' AND bg_flag = 'good' ORDER BY bg_id LIMIT 5");

이것을 전체가 아닌 그룹에서만 하는거라서 

 


$sql="SELECT b.*  
FROM g5_board as a , g5_board_good as b 
WHERE a.gr_id='1'
AND a.bo_table=b.bo_table
AND b.mb_id = '".$member['mb_id']."' 
AND b.bg_flag = 'good' 
ORDER BY b.bg_id LIMIT 5";
$query = sql_query($sql);
 

 

이렇게 변경이 되었습니다 

 

문제는 게시판 형태로 만들어야되잖아요?^^

저는 scrap.php 파일처럼 똑같이 팝업형태로 불러오고자 해서 

비슷하게 넣어봤는데 

안불러와서요

 

혹시 sql 문장에 오류가 있는 부분이 있으면 알려주시면 감사하겠습니다 

 

게시물 제목만 불러오는걸로 했고요 상하단 루트는 구지 안적었습니다 

 


 
$sql="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' 
ORDER BY b.bg_id LIMIT 100";
 
 
$sql_order = " order by ms_id desc ";
 
$sql = " select count(*) as cnt $sql_common ";
$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 *
            $sql_common
            $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;
  
 
    // 게시물 제목
 
 $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]['subject'] = $subject;
 
}
 

 

혹시 여기에 오류가 있을까요?

이 질문에 댓글 쓰기 :

답변 4

첫번째 쿼리에 문제가 있네요

 


$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' "; 
  
1. $sql = " select count(*) as cnt $sql_common"; 
2. $sql = " select * 
            $sql_common 
            $sql_order 
            limit $from_record, $rows "; 
}  

 

slq_common 이라는 변수의 값은 하나의 완성된 쿼리입니다.

 

1번 변수에 해당(sql_common) 변수가 들어가게 되면 select count(*) as cnt select b.* from ...

이런식으로되고

 

2번 변수에 해당(sql_common) 변수가 들어가면 select * select b.* from ...

 

이런식으로 sql 문법이 전혀 맞지 않아 오류가 되겠죠?

 

그러므로 sql_common 변수를 1번, 2번 변수에 넣어도 문법적인 오류가 없도록 변경하셔야 합니다.

 

또한 b.* 보다는 사용하는 컬럼을 지정하여 불러오도록 하시는 것이 더욱 좋을 듯 합니다.


  

 

 

$sql="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' 

ORDER BY b.bg_id LIMIT 100";

 

 

$sql_order = " order by ms_id desc ";

 

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

$row = sql_fetch($sql);

$total_count = $row['cnt'];

 

여기서 보면 $sql이란는 변수에  " select count(*) as cnt $sql_common " ​가 들어가는데

 

$sql="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' 

ORDER BY b.bg_id LIMIT 100";

​이부분은 사용되지 않고있습니다.

$sql을 $sql_common 으로 바꾸었습니다 이렇게 하라는 뜻인건가요?? 

 

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

ORDER BY b.bg_id LIMIT 100";


이렇게 바꿔도 안불러와지는데 혹시 더 봐주실분 계실까여? 
도움좀 부탁드릴게여 

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


    // 게시물 제목

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

}
 

여기에 오류가 있을까여? 왜 안불러오는건지;;;;
이리저리 수정해봐도 안불러옵니다

답변을 작성하시기 전에 로그인 해주세요.
전체 0 | RSS
QA 내용 검색
  • 개별 목록 구성 제목 답변작성자조회작성일
  • 질문이 없습니다.

회원로그인

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