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

sql 문장 문의드립니다 채택완료

거너비ok 8년 전 조회 4,081

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

 

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

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

 

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

 

이렇게 변경이 되었습니다 

 

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

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

비슷하게 넣어봤는데 

안불러와서요

 

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

 

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

 

</p><p> </p><p>$sql="SELECT b.*  </p><p>FROM g5_board as a , g5_board_good as b </p><p>WHERE a.gr_id='gr_1'</p><p>AND a.bo_table=b.bo_table</p><p>AND b.mb_id = '".$member['mb_id']."' </p><p>AND b.bg_flag = 'good' </p><p>ORDER BY b.bg_id LIMIT 100";</p><p> </p><p> </p><p>$sql_order = " order by ms_id desc ";</p><p> </p><p>$sql = " select count(*) as cnt $sql_common ";</p><p>$row = sql_fetch($sql);</p><p>$total_count = $row['cnt'];</p><p> </p><p>$rows = $config['cf_page_rows'];</p><p>$total_page  = ceil($total_count / $rows);  // 전체 페이지 계산</p><p>if ($page < 1) $page = 1; // 페이지가 없으면 첫 페이지 (1 페이지)</p><p>$from_record = ($page - 1) * $rows; // 시작 열을 구함</p><p> </p><p>$list = array();</p><p> </p><p>$sql = " select *</p><p>            $sql_common</p><p>            $sql_order</p><p>            limit $from_record, $rows ";</p><p>$result = sql_query($sql);</p><p>for ($i=0; $row=sql_fetch_array($result); $i++) {</p><p> </p><p>    $list[$i] = $row;</p><p> </p><p>    // 순차적인 번호 (순번)</p><p>    $num = $total_count - ($page - 1) * $rows - $i;</p><p>  </p><p> </p><p>    // 게시물 제목</p><p> </p><p> $tmp_write_table = $g5['write_prefix'] . $row['bo_table'];</p><p>    $sql3 = " select wr_subject from $tmp_write_table where wr_id = '{$row['wr_id']}' ";</p><p>    $row3 = sql_fetch($sql3, FALSE);</p><p>    $subject = get_text(cut_str($row3['wr_subject'], 100));</p><p>    if (!$row3['wr_subject'])</p><p>        $row3['wr_subject'] = '[글 없음]';</p><p>    $list[$i]['subject'] = $subject;</p><p> </p><p>}</p><p> 

 

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

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

답변 4개

채택된 답변
+20 포인트

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

 

</p><p><span style="color: rgb(51, 51, 51); font-family: 돋움, Dotum, sans-serif; font-size: 12px; background-color: rgb(247, 247, 247);">$sql_common ="<span style="color: rgb(255, 0, 0);">SELECT b.*  </span></span><br style="color: rgb(51, 51, 51); font-family: 돋움, Dotum, sans-serif; font-size: 12px;"><span style="color: rgb(51, 51, 51); font-family: 돋움, Dotum, sans-serif; font-size: 12px; background-color: rgb(247, 247, 247);"><span style="color: rgb(255, 0, 0);">FROM</span> g5_board as a , g5_board_good as b </span><br style="color: rgb(51, 51, 51); font-family: 돋움, Dotum, sans-serif; font-size: 12px;"><span style="color: rgb(51, 51, 51); font-family: 돋움, Dotum, sans-serif; font-size: 12px; background-color: rgb(247, 247, 247);">WHERE a.gr_id='gr_1' </span><br style="color: rgb(51, 51, 51); font-family: 돋움, Dotum, sans-serif; font-size: 12px;"><span style="color: rgb(51, 51, 51); font-family: 돋움, Dotum, sans-serif; font-size: 12px; background-color: rgb(247, 247, 247);">AND a.bo_table=b.bo_table </span><br style="color: rgb(51, 51, 51); font-family: 돋움, Dotum, sans-serif; font-size: 12px;"><span style="color: rgb(51, 51, 51); font-family: 돋움, Dotum, sans-serif; font-size: 12px; background-color: rgb(247, 247, 247);">AND b.mb_id = '".$member['mb_id']."' </span><br style="color: rgb(51, 51, 51); font-family: 돋움, Dotum, sans-serif; font-size: 12px;"><span style="color: rgb(51, 51, 51); font-family: 돋움, Dotum, sans-serif; font-size: 12px; background-color: rgb(247, 247, 247);">AND b.bg_flag = 'good' "; </span><br style="color: rgb(51, 51, 51); font-family: 돋움, Dotum, sans-serif; font-size: 12px;"><span style="color: rgb(51, 51, 51); font-family: 돋움, Dotum, sans-serif; font-size: 12px; background-color: rgb(247, 247, 247);">  </span><br style="color: rgb(51, 51, 51); font-family: 돋움, Dotum, sans-serif; font-size: 12px;"><br style="color: rgb(51, 51, 51); font-family: 돋움, Dotum, sans-serif; font-size: 12px;"><span style="color: rgb(51, 51, 51); font-family: 돋움, Dotum, sans-serif; font-size: 12px; background-color: rgb(247, 247, 247);">1. $sql = " select count(*) as cnt $sql_common"; </span><br style="color: rgb(51, 51, 51); font-family: 돋움, Dotum, sans-serif; font-size: 12px;"><span style="color: rgb(51, 51, 51); font-family: 돋움, Dotum, sans-serif; font-size: 12px; background-color: rgb(247, 247, 247);">2. $sql = " select * </span><br style="color: rgb(51, 51, 51); font-family: 돋움, Dotum, sans-serif; font-size: 12px;"><span style="color: rgb(51, 51, 51); font-family: 돋움, Dotum, sans-serif; font-size: 12px; background-color: rgb(247, 247, 247);">            $sql_common </span><br style="color: rgb(51, 51, 51); font-family: 돋움, Dotum, sans-serif; font-size: 12px;"><span style="color: rgb(51, 51, 51); font-family: 돋움, Dotum, sans-serif; font-size: 12px; background-color: rgb(247, 247, 247);">            $sql_order </span><br style="color: rgb(51, 51, 51); font-family: 돋움, Dotum, sans-serif; font-size: 12px;"><span style="color: rgb(51, 51, 51); font-family: 돋움, Dotum, sans-serif; font-size: 12px; background-color: rgb(247, 247, 247);">            limit $from_record, $rows "; </span><br style="color: rgb(51, 51, 51); font-family: 돋움, Dotum, sans-serif; font-size: 12px;"><span style="color: rgb(51, 51, 51); font-family: 돋움, Dotum, sans-serif; font-size: 12px; background-color: rgb(247, 247, 247);">} </span> </p><p>

 

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.* 보다는 사용하는 컬럼을 지정하여 불러오도록 하시는 것이 더욱 좋을 듯 합니다.


  

 

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

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

8년 전

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


이렇게 바꿔도 안불러와지는데 혹시 더 봐주실분 계실까여? 
도움좀 부탁드릴게여 
로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

거너비ok
8년 전
$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;

}


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

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

플라이
8년 전

소스에 $sql_common 사용되어지는 부분이 보여지지 않네요

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

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

SLOOP
8년 전

 

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

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

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

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

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

로그인