아빠불당님의 1:1 게시판을 사용할려고 하는데 에러가 나네요. 정보
아빠불당님의 1:1 게시판을 사용할려고 하는데 에러가 나네요.
본문
아빠불당님께서 올려주신 1:1 게시판
http://sir.co.kr/bbs/board.php?bo_table=g4_skin&wr_id=83034&sca=&sfl=wr_subject%7C%7Cwr_content&stx=1%3A1&sop=and
을 사용할려고 하는데,
아래와 같은 에러가 납니다.
select from g4_write_04_01 where (1) and ( mb_id = '' ) and (wr_num between '' and '10000') and wr_is_comment = 0 order by wr_num, wr_reply limit 0, 15
1064 : You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'from g4_write_04_01 where (1) and ( mb_id = '' ) and (wr_num
error file : /gnuboard4/bbs/board.php
댓글을보니 저뿐만 아닌 다른 분들도 동일한 에러가 나는걸로 보여지네요.
질문게시판을 찾아봐도 해결책이 없는듯하여 질문 드립니다.
이 에러를 없앨수 있는 방법이 없을런지요?
참고로 그누보드는 최신버전을 설치했습니다.
http://sir.co.kr/bbs/board.php?bo_table=g4_skin&wr_id=83034&sca=&sfl=wr_subject%7C%7Cwr_content&stx=1%3A1&sop=and
을 사용할려고 하는데,
아래와 같은 에러가 납니다.
select from g4_write_04_01 where (1) and ( mb_id = '' ) and (wr_num between '' and '10000') and wr_is_comment = 0 order by wr_num, wr_reply limit 0, 15
1064 : You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'from g4_write_04_01 where (1) and ( mb_id = '' ) and (wr_num
error file : /gnuboard4/bbs/board.php
댓글을보니 저뿐만 아닌 다른 분들도 동일한 에러가 나는걸로 보여지네요.
질문게시판을 찾아봐도 해결책이 없는듯하여 질문 드립니다.
이 에러를 없앨수 있는 방법이 없을런지요?
참고로 그누보드는 최신버전을 설치했습니다.
댓글 전체

그 부분의 소스를 보여주면 도움이 되겠지만, select ???? from g4_write_04_01
이렇게 뭘 설렉트 할건지 지정이 안돼서 오류가 나고 있습니다.
어떻게 고쳐야 할지 모르면 일단 *을 저 위치에 넣어보세요.
이렇게 뭘 설렉트 할건지 지정이 안돼서 오류가 나고 있습니다.
어떻게 고쳐야 할지 모르면 일단 *을 저 위치에 넣어보세요.

링크에 파일이 있어서 따로 소스 안올렸는데,
해당파일중 list.skin.php 의 소스는 아래와 같습니다.
아... 그리고... 저 에러는 처음 리스트 화면에서 납니다.
그리고 관리자로 로그인 한 상태에서는 에러 나지 않고,
일반 회원이 접속했을때 저런 에러 문구가 나옵니다.
리스트 상단에 저 에러가 뜨는게 아니라 저 에러만 뜨고 리스트 자체가 안나옵니다.
===================================================
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
// 1:1 - 게시판 (이부분의 코드는 bbs/list.php에서 대부분 가져온 것 입니다.
if (!$is_admin) {
// 검색항목 설정하기
if ($sca || $stx)
{
// 1:1 게시판에서는 회원명/아이디 검색을 할 수 없게
if ($sfl == 'wr_name%2C0' || sfl == 'wr_name%2C1' || $sfl == 'mb_id%2C0' || $sfl = 'mb_id%2C1')
$sql_search = " (1) ";
else
$sql_search = get_sql_search($sca, $sfl, $stx, $sop);
}
else
$sql_search = " (1) ";
if ($member['mb_id'])
$sql_search .= " and ( mb_id = '{$member[mb_id]}' or wr_5 = '{$member[mb_id]}') ";
else
$sql_search .= " and ( mb_id = '' ) ";
$min_spt = $board['min_wr_num'];
if (!$spt) $spt = $min_spt;
$sql_search .= " and (wr_num between '".$spt."' and '".($spt + $config[cf_search_part])."') ";
// 분류 선택 또는 검색어가 있다면
if ($sca || $stx)
{
// 원글만 얻는다. (코멘트의 내용도 검색하기 위함)
$sql = " select distinct wr_parent from $write_table where $sql_search ";
$result = sql_query($sql);
$total_count = mysql_num_rows($result);
}
else
{
// 1:1 게시판은 그래도 query를 해야 합니다.
$sql = " select count(*) as cnt from $write_table where $sql_search and wr_is_comment = 0 ";
$result = sql_fetch($sql);
$total_count = $result['cnt'];
}
$total_page = ceil($total_count / $board[bo_page_rows]); // 전체 페이지 계산
if (!$page) { $page = 1; } // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $board[bo_page_rows]; // 시작 열을 구함
if ($sca || $stx)
{
$sql = " select distinct wr_parent from $write_table where $sql_search $sql_order limit $from_record, $board[bo_page_rows] ";
}
else
{
$sql = " select $list_select from $write_table where $sql_search and wr_is_comment = 0 $sql_order limit $from_record, $board[bo_page_rows] ";
}
$result = sql_query($sql);
// 년도 2자리
$today2 = $g4[time_ymd];
$list = array();
$i = 0;
// 공지가져오기
$list = array();
$i = 0;
$arr_notice = split("\n", trim($board[bo_notice]));
$arr_notice_count = count($arr_notice);
if ($arr_notice_count > 0) { // 공지사항이 있는 경우
$sql_case = " ";
$j = 0;
for ($k=0; $k<$arr_notice_count; $k++)
{
if (trim($arr_notice[$k]) == '')
continue;
$sql_case .= " when " . $arr_notice[$k] . " then " . $k ;
if ($j == 0)
$sql_where = " wr_id = " . $arr_notice[$k] . " ";
else
$sql_where .= " or wr_id = " . $arr_notice[$k] . " ";
$j++;
} // end of for
if ($j > 0) {
$sql = " select {$list_select} , case wr_id $sql_case else 10000 end as fsort from $write_table where $sql_where order by fsort,wr_num, wr_reply ";
$result_notice = sql_query($sql);
while ($row_notice = sql_fetch_array($result_notice))
{
if (!$row_notice['wr_id']) continue;
$list[$i] = get_list($row_notice, $board, $board_skin_path, $board[bo_subject_len]);
$list[$i][is_notice] = true;
$i++;
} // end of while
} // end of if $j > 0
} // end of if $arr_notice_count > 0
$k = 0;
while ($row = sql_fetch_array($result))
{
// 검색일 경우 wr_id만 얻었으므로 다시 한행을 얻는다
if ($sca || $stx)
$row = sql_fetch(" select {$list_select} from $write_table where wr_id = '$row[wr_parent]' ");
$list[$i] = get_list($row, $board, $board_skin_path, $board[bo_subject_len]);
if (strstr($sfl, "subject"))
$list[$i][subject] = search_font($stx, $list[$i][subject]);
$list[$i][is_notice] = false;
//$list[$i][num] = number_format($total_count - ($page - 1) * $board[bo_page_rows] - $k);
$list[$i][num] = $total_count - ($page - 1) * $board[bo_page_rows] - $k;
$i++;
$k++;
}
$write_pages = get_paging($config[cf_write_pages], $page, $total_page, "./board.php?bo_table=$bo_table".$qstr."&page=");
}
// 1:1 - 게시판
// 선택옵션으로 인해 셀합치기가 가변적으로 변함
$colspan = 5;
//if ($is_category) $colspan++;
if ($is_checkbox) $colspan++;
if ($is_good) $colspan++;
if ($is_nogood) $colspan++;
// 제목이 두줄로 표시되는 경우 이 코드를 사용해 보세요.
// <nobr style='display:block; overflow:hidden; width:000px;'>제목</nobr>
?>
<!-- 게시판 목록 시작 -->
<table width="<?=$width?>" align=center cellpadding=0 cellspacing=0><tr><td>
<!-- 분류 셀렉트 박스, 게시물 몇건, 관리자화면 링크 -->
<table width="100%" cellspacing="0" cellpadding="0">
<tr height="25">
<td align="left">
</td>
<? if ($is_category) { ?><form name="fcategory" method="get"><td width="50%"><select name=sca onchange="location='<?=$category_location?>'+this.value;"><option value=''>전체</option><?=$category_option?></select></td></form><? } ?>
<td align="right" style="font:normal 11px tahoma; color:#BABABA;">
Total <?=number_format($total_count)?>
<? if ($rss_href) { ?><a href='<?=$rss_href?>'><img src='<?=$board_skin_path?>/img/btn_rss.gif' border=0 align=absmiddle></a><?}?>
<? if ($admin_href) { ?><a href="<?=$admin_href?>"><img src="<?=$board_skin_path?>/img/btn_admin.gif" title="관리자" width="63" height="22" border="0" align="absmiddle"></a><?}?></td>
</tr>
<tr><td height=5></td></tr>
</table>
<!-- 제목 -->
<form name="fboardlist" method="post" style="margin:0px;">
<input type='hidden' name='bo_table' value='<?=$bo_table?>'>
<input type='hidden' name='sfl' value='<?=$sfl?>'>
<input type='hidden' name='stx' value='<?=$stx?>'>
<input type='hidden' name='spt' value='<?=$spt?>'>
<input type='hidden' name='page' value='<?=$page?>'>
<input type='hidden' name='sw' value=''>
<table width=100% border="0" cellpadding=0 cellspacing="2">
<tr>
<td height=2 bgcolor="#0A7299"></td>
<? if ($is_checkbox) { ?><td bgcolor="#0A7299"></td><?}?>
<td bgcolor="#0A7299"></td>
<td bgcolor="#A4B510"></td>
<td bgcolor="#A4B510"></td>
<td bgcolor="#A4B510"></td>
<? if ($is_good) { ?><td bgcolor="#A4B510"></td><?}?>
<? if ($is_good) { ?><td bgcolor="#A4B510"></td><?}?>
</tr>
<tr height=28 align=center>
<td width=50>번호</td>
<?/* if ($is_category) { ?><td width=70>분류</td><?}*/?>
<? if ($is_checkbox) { ?><td width=40><INPUT onclick="if (this.checked) all_checked(true); else all_checked(false);" type=checkbox></td><?}?>
<td>제목</td>
<td width=110>글쓴이</td>
<td width=40><?=subject_sort_link('wr_datetime', $qstr2, 1)?>날짜</a></td>
<td width=50><?=subject_sort_link('wr_hit', $qstr2, 1)?>조회</a></td>
<?/*?><td width=40 title='마지막 코멘트 쓴 시간'><?=subject_sort_link('wr_last', $qstr2, 1)?>최근</a></td><?*/?>
<? if ($is_good) { ?><td width=40><?=subject_sort_link('wr_good', $qstr2, 1)?>추천</a></td><?}?>
<? if ($is_nogood) { ?><td width=40><?=subject_sort_link('wr_nogood', $qstr2, 1)?>비추천</a></td><?}?>
</tr>
<tr><td colspan=<?=$colspan?> height=3 style="background:url(<?=$board_skin_path?>/img/title_bg.gif) repeat-x;"></td></tr>
<!-- 목록 -->
<? for ($i=0; $i<count($list); $i++) { ?>
<tr height=28 align=center>
<td>
<?
if ($list[$i][is_notice]) // 공지사항
echo "<img src=\"$board_skin_path/img/icon_notice.gif\">";
else if ($wr_id == $list[$i][wr_id]) // 현재위치
echo "<span style='font:bold 11px tahoma; color:#E15916;'>{$list[$i][num]}</span>";
else
echo "<span style='font:normal 11px tahoma; color:#BABABA;'>{$list[$i][num]}</span>";
?></td>
<?/* if ($is_category) { ?><td><a href="<?=$list[$i][ca_name_href]?>"><span class=small style='color:#BABABA;'><?=$list[$i][ca_name]?></span></a></td><? } */?>
<? if ($is_checkbox) { ?><td><input type=checkbox name=chk_wr_id[] value="<?=$list[$i][wr_id]?>"></td><? } ?>
<td align=left style='word-break:break-all;'>
<?
echo $nobr_begin;
echo $list[$i][reply];
echo $list[$i][icon_reply];
if ($is_category && $list[$i][ca_name]) {
echo "<span class=small><font color=gray>[<a href='{$list[$i][ca_name_href]}'>{$list[$i][ca_name]}</a>]</font></span> ";
}
$style = "";
if ($list[$i][is_notice]) $style .= " style='font-weight:bold;'";
if ($list[$i][wr_singo]) $style .= " style='color:#B8B8B8;'";
echo "<a href='{$list[$i][href]}' $style>";
echo $list[$i][subject];
echo "</a>";
if ($list[$i][comment_cnt])
echo " <a href=\"{$list[$i][comment_href]}\"><span style='font-family:Tahoma;font-size:10px;color:#EE5A00;'>{$list[$i][comment_cnt]}</span></a>";
// if ($list[$i]['link']['count']) { echo "[{$list[$i]['link']['count']}]"; }
// if ($list[$i]['file']['count']) { echo "<{$list[$i]['file']['count']}>"; }
echo " " . $list[$i][icon_new];
echo " " . $list[$i][icon_file];
echo " " . $list[$i][icon_link];
echo " " . $list[$i][icon_hot];
echo " " . $list[$i][icon_secret];
echo $nobr_end;
?></td>
<td><nobr style='display:block; overflow:hidden; width:105px;'><?=$list[$i][name]?></nobr></td>
<td><span style='font:normal 11px tahoma; color:#BABABA;'><?=$list[$i][datetime2]?></span></td>
<td><span style='font:normal 11px tahoma; color:#BABABA;'><?=$list[$i][wr_hit]?></span></td>
<?/*?><td><span style='font:normal 11px tahoma; color:#BABABA;'><?=$list[$i][last2]?></span></td><?*/?>
<? if ($is_good) { ?><td align="center"><span style='font:normal 11px tahoma; color:#BABABA;'><?=$list[$i][wr_good]?></span></td><? } ?>
<? if ($is_nogood) { ?><td align="center"><span style='font:normal 11px tahoma; color:#BABABA;'><?=$list[$i][wr_nogood]?></span></td><? } ?>
</tr>
<tr><td colspan=<?=$colspan?> height=1 bgcolor=#E7E7E7></td></tr>
<?}?>
<? if (count($list) == 0) { echo "<tr><td colspan='$colspan' height=100 align=center>게시물이 없습니다.</td></tr>"; } ?>
<tr><td colspan=<?=$colspan?> bgcolor="#0A7299" height="2"></td></tr>
</table>
</form>
<!-- 페이지 -->
<table width="100%" cellspacing="0" cellpadding="0">
<tr>
<td width="100%" align="center" height=30 valign=bottom>
<? if ($prev_part_href) { echo "<a href='$prev_part_href'><img src='$board_skin_path/img/btn_search_prev.gif' border=0 align=absmiddle title='이전검색'></a>"; } ?>
<?
// 기본으로 넘어오는 페이지를 아래와 같이 변환하여 이미지로도 출력할 수 있습니다.
//echo $write_pages;
$write_pages = str_replace("처음", "<img src='$board_skin_path/img/begin.gif' border='0' align='absmiddle' title='처음'>", $write_pages);
$write_pages = str_replace("이전", "<img src='$board_skin_path/img/prev.gif' border='0' align='absmiddle' title='이전'>", $write_pages);
$write_pages = str_replace("다음", "<img src='$board_skin_path/img/next.gif' border='0' align='absmiddle' title='다음'>", $write_pages);
$write_pages = str_replace("맨끝", "<img src='$board_skin_path/img/end.gif' border='0' align='absmiddle' title='맨끝'>", $write_pages);
$write_pages = preg_replace("/<span>([0-9]*)<\/span>/", "<b><font style=\"font-family:tahoma; font-size:11px; color:#000000\">$1</font></b>", $write_pages);
$write_pages = preg_replace("/<b>([0-9]*)<\/b>/", "<b><font style=\"font-family:tahoma; font-size:11px; color:#E15916;\">$1</font></b>", $write_pages);
?>
<?=$write_pages?>
<? if ($next_part_href) { echo "<a href='$next_part_href'><img src='$board_skin_path/img/btn_search_next.gif' border=0 align=absmiddle title='다음검색'></a>"; } ?>
</td>
</tr>
</table>
<!-- 링크 버튼, 검색 -->
<form name=fsearch method=get style="margin:0px;">
<input type=hidden name=bo_table value="<?=$bo_table?>">
<input type=hidden name=sca value="<?=$sca?>">
<table width=100% cellpadding=0 cellspacing=0>
<tr>
<td width="50%" height="40">
<? if ($list_href) { ?><a href="<?=$list_href?>"><img src="<?=$board_skin_path?>/img/btn_list.gif" border="0"></a><? } ?>
<? if ($write_href) { ?><a href="<?=$write_href?>"><img src="<?=$board_skin_path?>/img/btn_write.gif" border="0"></a><? } ?>
<? if ($is_checkbox) { ?>
<a href="javascript:select_delete();"><img src="<?=$board_skin_path?>/img/btn_select_delete.gif" border="0"></a>
<a href="javascript:select_copy('copy');"><img src="<?=$board_skin_path?>/img/btn_select_copy.gif" border="0"></a>
<a href="javascript:select_copy('move');"><img src="<?=$board_skin_path?>/img/btn_select_move.gif" border="0"></a>
<? } ?>
</td>
<td width="50%" align="right">
<select name=sfl>
<option value='wr_subject||wr_content'>제목+내용</option>
<option value='wr_subject'>제목</option>
<option value='wr_content'>내용</option>
<option value='mb_id,1'>회원아이디</option>
<option value='mb_id,0'>회원아이디(코)</option>
<option value='wr_name,1'>이름</option>
<option value='wr_name,0'>이름(코)</option>
</select><input name=stx maxlength=15 size=10 itemname="검색어" required value='<?=$stx?>'><select name=sop>
<option value=and>and</option>
<option value=or>or</option>
</select>
<input type=image src="<?=$board_skin_path?>/img/search_btn.gif" border=0 align=absmiddle></td>
</tr>
</table>
</form>
</td></tr></table>
<script language="JavaScript">
if ('<?=$sca?>') document.fcategory.sca.value = '<?=$sca?>';
if ('<?=$stx?>') {
document.fsearch.sfl.value = '<?=$sfl?>';
document.fsearch.sop.value = '<?=$sop?>';
}
</script>
<? if ($is_checkbox) { ?>
<script language="JavaScript">
function all_checked(sw) {
var f = document.fboardlist;
for (var i=0; i<f.length; i++) {
if (f.elements[i].name == "chk_wr_id[]")
f.elements[i].checked = sw;
}
}
function check_confirm(str) {
var f = document.fboardlist;
var chk_count = 0;
for (var i=0; i<f.length; i++) {
if (f.elements[i].name == "chk_wr_id[]" && f.elements[i].checked)
chk_count++;
}
if (!chk_count) {
alert(str + "할 게시물을 하나 이상 선택하세요.");
return false;
}
return true;
}
// 선택한 게시물 삭제
function select_delete() {
var f = document.fboardlist;
str = "삭제";
if (!check_confirm(str))
return;
if (!confirm("선택한 게시물을 정말 "+str+" 하시겠습니까?\n\n한번 "+str+"한 자료는 복구할 수 없습니다"))
return;
f.action = "./delete_all.php";
f.submit();
}
// 선택한 게시물 복사 및 이동
function select_copy(sw) {
var f = document.fboardlist;
if (sw == "copy")
str = "복사";
else
str = "이동";
if (!check_confirm(str))
return;
var sub_win = window.open("", "move", "left=50, top=50, width=500, height=550, scrollbars=1");
f.sw.value = sw;
f.target = "move";
f.action = "./move.php";
f.submit();
}
</script>
<? } ?>
<!-- 게시판 목록 끝 -->
해당파일중 list.skin.php 의 소스는 아래와 같습니다.
아... 그리고... 저 에러는 처음 리스트 화면에서 납니다.
그리고 관리자로 로그인 한 상태에서는 에러 나지 않고,
일반 회원이 접속했을때 저런 에러 문구가 나옵니다.
리스트 상단에 저 에러가 뜨는게 아니라 저 에러만 뜨고 리스트 자체가 안나옵니다.
===================================================
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
// 1:1 - 게시판 (이부분의 코드는 bbs/list.php에서 대부분 가져온 것 입니다.
if (!$is_admin) {
// 검색항목 설정하기
if ($sca || $stx)
{
// 1:1 게시판에서는 회원명/아이디 검색을 할 수 없게
if ($sfl == 'wr_name%2C0' || sfl == 'wr_name%2C1' || $sfl == 'mb_id%2C0' || $sfl = 'mb_id%2C1')
$sql_search = " (1) ";
else
$sql_search = get_sql_search($sca, $sfl, $stx, $sop);
}
else
$sql_search = " (1) ";
if ($member['mb_id'])
$sql_search .= " and ( mb_id = '{$member[mb_id]}' or wr_5 = '{$member[mb_id]}') ";
else
$sql_search .= " and ( mb_id = '' ) ";
$min_spt = $board['min_wr_num'];
if (!$spt) $spt = $min_spt;
$sql_search .= " and (wr_num between '".$spt."' and '".($spt + $config[cf_search_part])."') ";
// 분류 선택 또는 검색어가 있다면
if ($sca || $stx)
{
// 원글만 얻는다. (코멘트의 내용도 검색하기 위함)
$sql = " select distinct wr_parent from $write_table where $sql_search ";
$result = sql_query($sql);
$total_count = mysql_num_rows($result);
}
else
{
// 1:1 게시판은 그래도 query를 해야 합니다.
$sql = " select count(*) as cnt from $write_table where $sql_search and wr_is_comment = 0 ";
$result = sql_fetch($sql);
$total_count = $result['cnt'];
}
$total_page = ceil($total_count / $board[bo_page_rows]); // 전체 페이지 계산
if (!$page) { $page = 1; } // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $board[bo_page_rows]; // 시작 열을 구함
if ($sca || $stx)
{
$sql = " select distinct wr_parent from $write_table where $sql_search $sql_order limit $from_record, $board[bo_page_rows] ";
}
else
{
$sql = " select $list_select from $write_table where $sql_search and wr_is_comment = 0 $sql_order limit $from_record, $board[bo_page_rows] ";
}
$result = sql_query($sql);
// 년도 2자리
$today2 = $g4[time_ymd];
$list = array();
$i = 0;
// 공지가져오기
$list = array();
$i = 0;
$arr_notice = split("\n", trim($board[bo_notice]));
$arr_notice_count = count($arr_notice);
if ($arr_notice_count > 0) { // 공지사항이 있는 경우
$sql_case = " ";
$j = 0;
for ($k=0; $k<$arr_notice_count; $k++)
{
if (trim($arr_notice[$k]) == '')
continue;
$sql_case .= " when " . $arr_notice[$k] . " then " . $k ;
if ($j == 0)
$sql_where = " wr_id = " . $arr_notice[$k] . " ";
else
$sql_where .= " or wr_id = " . $arr_notice[$k] . " ";
$j++;
} // end of for
if ($j > 0) {
$sql = " select {$list_select} , case wr_id $sql_case else 10000 end as fsort from $write_table where $sql_where order by fsort,wr_num, wr_reply ";
$result_notice = sql_query($sql);
while ($row_notice = sql_fetch_array($result_notice))
{
if (!$row_notice['wr_id']) continue;
$list[$i] = get_list($row_notice, $board, $board_skin_path, $board[bo_subject_len]);
$list[$i][is_notice] = true;
$i++;
} // end of while
} // end of if $j > 0
} // end of if $arr_notice_count > 0
$k = 0;
while ($row = sql_fetch_array($result))
{
// 검색일 경우 wr_id만 얻었으므로 다시 한행을 얻는다
if ($sca || $stx)
$row = sql_fetch(" select {$list_select} from $write_table where wr_id = '$row[wr_parent]' ");
$list[$i] = get_list($row, $board, $board_skin_path, $board[bo_subject_len]);
if (strstr($sfl, "subject"))
$list[$i][subject] = search_font($stx, $list[$i][subject]);
$list[$i][is_notice] = false;
//$list[$i][num] = number_format($total_count - ($page - 1) * $board[bo_page_rows] - $k);
$list[$i][num] = $total_count - ($page - 1) * $board[bo_page_rows] - $k;
$i++;
$k++;
}
$write_pages = get_paging($config[cf_write_pages], $page, $total_page, "./board.php?bo_table=$bo_table".$qstr."&page=");
}
// 1:1 - 게시판
// 선택옵션으로 인해 셀합치기가 가변적으로 변함
$colspan = 5;
//if ($is_category) $colspan++;
if ($is_checkbox) $colspan++;
if ($is_good) $colspan++;
if ($is_nogood) $colspan++;
// 제목이 두줄로 표시되는 경우 이 코드를 사용해 보세요.
// <nobr style='display:block; overflow:hidden; width:000px;'>제목</nobr>
?>
<!-- 게시판 목록 시작 -->
<table width="<?=$width?>" align=center cellpadding=0 cellspacing=0><tr><td>
<!-- 분류 셀렉트 박스, 게시물 몇건, 관리자화면 링크 -->
<table width="100%" cellspacing="0" cellpadding="0">
<tr height="25">
<td align="left">
</td>
<? if ($is_category) { ?><form name="fcategory" method="get"><td width="50%"><select name=sca onchange="location='<?=$category_location?>'+this.value;"><option value=''>전체</option><?=$category_option?></select></td></form><? } ?>
<td align="right" style="font:normal 11px tahoma; color:#BABABA;">
Total <?=number_format($total_count)?>
<? if ($rss_href) { ?><a href='<?=$rss_href?>'><img src='<?=$board_skin_path?>/img/btn_rss.gif' border=0 align=absmiddle></a><?}?>
<? if ($admin_href) { ?><a href="<?=$admin_href?>"><img src="<?=$board_skin_path?>/img/btn_admin.gif" title="관리자" width="63" height="22" border="0" align="absmiddle"></a><?}?></td>
</tr>
<tr><td height=5></td></tr>
</table>
<!-- 제목 -->
<form name="fboardlist" method="post" style="margin:0px;">
<input type='hidden' name='bo_table' value='<?=$bo_table?>'>
<input type='hidden' name='sfl' value='<?=$sfl?>'>
<input type='hidden' name='stx' value='<?=$stx?>'>
<input type='hidden' name='spt' value='<?=$spt?>'>
<input type='hidden' name='page' value='<?=$page?>'>
<input type='hidden' name='sw' value=''>
<table width=100% border="0" cellpadding=0 cellspacing="2">
<tr>
<td height=2 bgcolor="#0A7299"></td>
<? if ($is_checkbox) { ?><td bgcolor="#0A7299"></td><?}?>
<td bgcolor="#0A7299"></td>
<td bgcolor="#A4B510"></td>
<td bgcolor="#A4B510"></td>
<td bgcolor="#A4B510"></td>
<? if ($is_good) { ?><td bgcolor="#A4B510"></td><?}?>
<? if ($is_good) { ?><td bgcolor="#A4B510"></td><?}?>
</tr>
<tr height=28 align=center>
<td width=50>번호</td>
<?/* if ($is_category) { ?><td width=70>분류</td><?}*/?>
<? if ($is_checkbox) { ?><td width=40><INPUT onclick="if (this.checked) all_checked(true); else all_checked(false);" type=checkbox></td><?}?>
<td>제목</td>
<td width=110>글쓴이</td>
<td width=40><?=subject_sort_link('wr_datetime', $qstr2, 1)?>날짜</a></td>
<td width=50><?=subject_sort_link('wr_hit', $qstr2, 1)?>조회</a></td>
<?/*?><td width=40 title='마지막 코멘트 쓴 시간'><?=subject_sort_link('wr_last', $qstr2, 1)?>최근</a></td><?*/?>
<? if ($is_good) { ?><td width=40><?=subject_sort_link('wr_good', $qstr2, 1)?>추천</a></td><?}?>
<? if ($is_nogood) { ?><td width=40><?=subject_sort_link('wr_nogood', $qstr2, 1)?>비추천</a></td><?}?>
</tr>
<tr><td colspan=<?=$colspan?> height=3 style="background:url(<?=$board_skin_path?>/img/title_bg.gif) repeat-x;"></td></tr>
<!-- 목록 -->
<? for ($i=0; $i<count($list); $i++) { ?>
<tr height=28 align=center>
<td>
<?
if ($list[$i][is_notice]) // 공지사항
echo "<img src=\"$board_skin_path/img/icon_notice.gif\">";
else if ($wr_id == $list[$i][wr_id]) // 현재위치
echo "<span style='font:bold 11px tahoma; color:#E15916;'>{$list[$i][num]}</span>";
else
echo "<span style='font:normal 11px tahoma; color:#BABABA;'>{$list[$i][num]}</span>";
?></td>
<?/* if ($is_category) { ?><td><a href="<?=$list[$i][ca_name_href]?>"><span class=small style='color:#BABABA;'><?=$list[$i][ca_name]?></span></a></td><? } */?>
<? if ($is_checkbox) { ?><td><input type=checkbox name=chk_wr_id[] value="<?=$list[$i][wr_id]?>"></td><? } ?>
<td align=left style='word-break:break-all;'>
<?
echo $nobr_begin;
echo $list[$i][reply];
echo $list[$i][icon_reply];
if ($is_category && $list[$i][ca_name]) {
echo "<span class=small><font color=gray>[<a href='{$list[$i][ca_name_href]}'>{$list[$i][ca_name]}</a>]</font></span> ";
}
$style = "";
if ($list[$i][is_notice]) $style .= " style='font-weight:bold;'";
if ($list[$i][wr_singo]) $style .= " style='color:#B8B8B8;'";
echo "<a href='{$list[$i][href]}' $style>";
echo $list[$i][subject];
echo "</a>";
if ($list[$i][comment_cnt])
echo " <a href=\"{$list[$i][comment_href]}\"><span style='font-family:Tahoma;font-size:10px;color:#EE5A00;'>{$list[$i][comment_cnt]}</span></a>";
// if ($list[$i]['link']['count']) { echo "[{$list[$i]['link']['count']}]"; }
// if ($list[$i]['file']['count']) { echo "<{$list[$i]['file']['count']}>"; }
echo " " . $list[$i][icon_new];
echo " " . $list[$i][icon_file];
echo " " . $list[$i][icon_link];
echo " " . $list[$i][icon_hot];
echo " " . $list[$i][icon_secret];
echo $nobr_end;
?></td>
<td><nobr style='display:block; overflow:hidden; width:105px;'><?=$list[$i][name]?></nobr></td>
<td><span style='font:normal 11px tahoma; color:#BABABA;'><?=$list[$i][datetime2]?></span></td>
<td><span style='font:normal 11px tahoma; color:#BABABA;'><?=$list[$i][wr_hit]?></span></td>
<?/*?><td><span style='font:normal 11px tahoma; color:#BABABA;'><?=$list[$i][last2]?></span></td><?*/?>
<? if ($is_good) { ?><td align="center"><span style='font:normal 11px tahoma; color:#BABABA;'><?=$list[$i][wr_good]?></span></td><? } ?>
<? if ($is_nogood) { ?><td align="center"><span style='font:normal 11px tahoma; color:#BABABA;'><?=$list[$i][wr_nogood]?></span></td><? } ?>
</tr>
<tr><td colspan=<?=$colspan?> height=1 bgcolor=#E7E7E7></td></tr>
<?}?>
<? if (count($list) == 0) { echo "<tr><td colspan='$colspan' height=100 align=center>게시물이 없습니다.</td></tr>"; } ?>
<tr><td colspan=<?=$colspan?> bgcolor="#0A7299" height="2"></td></tr>
</table>
</form>
<!-- 페이지 -->
<table width="100%" cellspacing="0" cellpadding="0">
<tr>
<td width="100%" align="center" height=30 valign=bottom>
<? if ($prev_part_href) { echo "<a href='$prev_part_href'><img src='$board_skin_path/img/btn_search_prev.gif' border=0 align=absmiddle title='이전검색'></a>"; } ?>
<?
// 기본으로 넘어오는 페이지를 아래와 같이 변환하여 이미지로도 출력할 수 있습니다.
//echo $write_pages;
$write_pages = str_replace("처음", "<img src='$board_skin_path/img/begin.gif' border='0' align='absmiddle' title='처음'>", $write_pages);
$write_pages = str_replace("이전", "<img src='$board_skin_path/img/prev.gif' border='0' align='absmiddle' title='이전'>", $write_pages);
$write_pages = str_replace("다음", "<img src='$board_skin_path/img/next.gif' border='0' align='absmiddle' title='다음'>", $write_pages);
$write_pages = str_replace("맨끝", "<img src='$board_skin_path/img/end.gif' border='0' align='absmiddle' title='맨끝'>", $write_pages);
$write_pages = preg_replace("/<span>([0-9]*)<\/span>/", "<b><font style=\"font-family:tahoma; font-size:11px; color:#000000\">$1</font></b>", $write_pages);
$write_pages = preg_replace("/<b>([0-9]*)<\/b>/", "<b><font style=\"font-family:tahoma; font-size:11px; color:#E15916;\">$1</font></b>", $write_pages);
?>
<?=$write_pages?>
<? if ($next_part_href) { echo "<a href='$next_part_href'><img src='$board_skin_path/img/btn_search_next.gif' border=0 align=absmiddle title='다음검색'></a>"; } ?>
</td>
</tr>
</table>
<!-- 링크 버튼, 검색 -->
<form name=fsearch method=get style="margin:0px;">
<input type=hidden name=bo_table value="<?=$bo_table?>">
<input type=hidden name=sca value="<?=$sca?>">
<table width=100% cellpadding=0 cellspacing=0>
<tr>
<td width="50%" height="40">
<? if ($list_href) { ?><a href="<?=$list_href?>"><img src="<?=$board_skin_path?>/img/btn_list.gif" border="0"></a><? } ?>
<? if ($write_href) { ?><a href="<?=$write_href?>"><img src="<?=$board_skin_path?>/img/btn_write.gif" border="0"></a><? } ?>
<? if ($is_checkbox) { ?>
<a href="javascript:select_delete();"><img src="<?=$board_skin_path?>/img/btn_select_delete.gif" border="0"></a>
<a href="javascript:select_copy('copy');"><img src="<?=$board_skin_path?>/img/btn_select_copy.gif" border="0"></a>
<a href="javascript:select_copy('move');"><img src="<?=$board_skin_path?>/img/btn_select_move.gif" border="0"></a>
<? } ?>
</td>
<td width="50%" align="right">
<select name=sfl>
<option value='wr_subject||wr_content'>제목+내용</option>
<option value='wr_subject'>제목</option>
<option value='wr_content'>내용</option>
<option value='mb_id,1'>회원아이디</option>
<option value='mb_id,0'>회원아이디(코)</option>
<option value='wr_name,1'>이름</option>
<option value='wr_name,0'>이름(코)</option>
</select><input name=stx maxlength=15 size=10 itemname="검색어" required value='<?=$stx?>'><select name=sop>
<option value=and>and</option>
<option value=or>or</option>
</select>
<input type=image src="<?=$board_skin_path?>/img/search_btn.gif" border=0 align=absmiddle></td>
</tr>
</table>
</form>
</td></tr></table>
<script language="JavaScript">
if ('<?=$sca?>') document.fcategory.sca.value = '<?=$sca?>';
if ('<?=$stx?>') {
document.fsearch.sfl.value = '<?=$sfl?>';
document.fsearch.sop.value = '<?=$sop?>';
}
</script>
<? if ($is_checkbox) { ?>
<script language="JavaScript">
function all_checked(sw) {
var f = document.fboardlist;
for (var i=0; i<f.length; i++) {
if (f.elements[i].name == "chk_wr_id[]")
f.elements[i].checked = sw;
}
}
function check_confirm(str) {
var f = document.fboardlist;
var chk_count = 0;
for (var i=0; i<f.length; i++) {
if (f.elements[i].name == "chk_wr_id[]" && f.elements[i].checked)
chk_count++;
}
if (!chk_count) {
alert(str + "할 게시물을 하나 이상 선택하세요.");
return false;
}
return true;
}
// 선택한 게시물 삭제
function select_delete() {
var f = document.fboardlist;
str = "삭제";
if (!check_confirm(str))
return;
if (!confirm("선택한 게시물을 정말 "+str+" 하시겠습니까?\n\n한번 "+str+"한 자료는 복구할 수 없습니다"))
return;
f.action = "./delete_all.php";
f.submit();
}
// 선택한 게시물 복사 및 이동
function select_copy(sw) {
var f = document.fboardlist;
if (sw == "copy")
str = "복사";
else
str = "이동";
if (!check_confirm(str))
return;
var sub_win = window.open("", "move", "left=50, top=50, width=500, height=550, scrollbars=1");
f.sw.value = sw;
f.target = "move";
f.action = "./move.php";
f.submit();
}
</script>
<? } ?>
<!-- 게시판 목록 끝 -->
54번째줄에 보면
$sql = " select $list_select from $write_table where....
이 구문에서
위에서 $list_select에 대입된 값이 없네요
$sql = " select $list_select from $write_table where....
이 구문에서
위에서 $list_select에 대입된 값이 없네요

허접제국님 말씀대로 그 값을 확인해보시고,
$spt 값도 없는 것 같은데, 혹시 에러가 나면 0이 되도록 설정하시면 될듯
if(!$list_select) $list_select = "*";
이런식으로 아무것도 요구하는 게 없으면 *가 입력되도록 하세요.
$spt 값도 없는 것 같은데, 혹시 에러가 나면 0이 되도록 설정하시면 될듯
if(!$list_select) $list_select = "*";
이런식으로 아무것도 요구하는 게 없으면 *가 입력되도록 하세요.

두분 답변 감사합니다.
그런데... 정확히 그부분을 어떻게 해줘야 하는지를 모르겠습니다.
이리 저리 해봐도 계속 에러가...
일단은 급한대로 다른 소스로 대체해서사용하기로 했지만,
혹시라도 정확한 해결 방법 알려주시는분 계시면 정말 감사하겠습니다.
오늘밤까지 다른 답변 없으면 그냥 두분중 한분 답변채택하겠습니다.
감사합니다.
그런데... 정확히 그부분을 어떻게 해줘야 하는지를 모르겠습니다.
이리 저리 해봐도 계속 에러가...
일단은 급한대로 다른 소스로 대체해서사용하기로 했지만,
혹시라도 정확한 해결 방법 알려주시는분 계시면 정말 감사하겠습니다.
오늘밤까지 다른 답변 없으면 그냥 두분중 한분 답변채택하겠습니다.
감사합니다.