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");
이것을 전체가 아닌 그룹에서만 하는거라서
</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개
첫번째 쿼리에 문제가 있네요
</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.* 보다는 사용하는 컬럼을 지정하여 불러오도록 하시는 것이 더욱 좋을 듯 합니다.
댓글을 작성하려면 로그인이 필요합니다.
$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개
댓글을 작성하려면 로그인이 필요합니다.
$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";
이부분은 사용되지 않고있습니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
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;
}
여기에 오류가 있을까여? 왜 안불러오는건지;;;;
이리저리 수정해봐도 안불러옵니다