카테고리 선택시 페이징이 제대로 안됩니다.
본문
안녕하세요.
부동산스킨(원본 "https://sir.kr/g5_skin/8318?page=3?page=3")을 수정해서 사용중입니다.
아래그림처럼 카테고리와 여분필드를 통해서 다중 카테고리를 사용합니다.
그런데 아래 그림처럼 분류를 사용한 카테고리는 정상적으로 페이징이 되는데, 여분필드를 사용한
카테고리는 정상적으로 페이징이 안되고 전체 목록이 페이징 됩니다.(선택된 카테고리의 첫페이지 내용은 제대로 출력되며 하단 페이징만 오류가 납니다.)
카테고리 선택시 정상적으로 페이징이 되려면 어떻게 해야할까요?
(관리자모드의 분류를 이용한 카테고리는 하단에 정상적으로 페이징 됩니다.)
(여분 필드를 이용한 카테고리는 하단에 전체 목록이 페이징 됩니다. )
list.skin.php 소스입니다.
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
include_once(G5_LIB_PATH.'/latest_wr.lib.php');
include_once("$board_skin_path/skin.exe.php");
include_once(G5_LIB_PATH.'/thumbnail.lib.php');
$p_four = explode("|",$list[$i][wr_4]);
$four01 = $p_four[0];
$four02 = $p_four[1];
$four03 = $p_four[2];
$four04 = $p_four[3];
$four05 = $p_four[4];
$four06 = $p_four[5];
$four07 = $p_four[6];
$four08 = $p_four[7];
$four09 = $p_four[8];
$four10 = $p_four[9];
$four11 = $p_four[10];
$four12 = $p_four[11];
$four13 = $p_four[12];
$four14 = $p_four[13];
$four15 = $p_four[14];
$four16 = $p_four[15];
$four17 = $p_four[16];
$four18 = $p_four[17];
$four19 = $p_four[18];
$four20 = $p_four[19];
$four21 = $p_four[20];
$four22 = $p_four[21];
$four23 = $p_four[22];
$four24 = $p_four[23];
$four25 = $p_four[24];
$four26 = $p_four[25];
$four27 = $p_four[26];
$four28 = $p_four[27];
$four29 = $p_four[28];
$four30 = $p_four[29];
$four31 = $p_four[30];
$four32 = $p_four[31];
$four33 = $p_four[32];
$four34 = $p_four[33];
$four35 = $p_four[34];
$four36 = $p_four[35];
$four37 = $p_four[36];
$four38 = $p_four[37];
$four39 = $p_four[38];
$four40 = $p_four[39];
$four41 = $p_four[40];
$four42 = $p_four[41];
$four43 = $p_four[42];
$four44 = $p_four[43];
$four45 = $p_four[44];
$four46 = $p_four[45];
$four47 = $p_four[46];
$four48 = $p_four[47];
$four49 = $p_four[48];
$four50 = $p_four[49];
$four51 = $p_four[50];
$four52 = $p_four[51];
$four53 = $p_four[52];
$four54 = $p_four[53];
$four55 = $p_four[54];
$four56 = $p_four[55];
$four57 = $p_four[56];
$four58 = $p_four[57];
$four59 = $p_four[58];
$four60 = $p_four[59];
$mod = $board[bo_gallery_cols];
$td_width = (int)(100 / $mod);
//if ($is_category) $colspan++;
if ($is_checkbox) $colspan++;
if ($is_good) $colspan++;
if ($is_nogood) $colspan++;
function get_bo_n_option($bo_n='')
{
global $g5, $board;
$arr = explode("|", $board[$bo_n]); // 구분자가 | 로 되어 있음
$str = "";
for ($i=0; $i<count($arr); $i++)
if (trim($arr[$i]))
$str .= "<option value='$arr[$i]'>$arr[$i]</option>\n";
return $str;
}
// 카테고리 분할
if ($is_category = true) {
$bo_7_option = get_bo_n_option('bo_7'); // SELECT OPTION 태그로 넘겨받음
$bo_8_option = get_bo_n_option('bo_8'); // SELECT OPTION 태그로 넘겨받음
$bo_9_option = get_bo_n_option('bo_9'); // SELECT OPTION 태그로 넘겨받음
$bo_5_option = get_bo_n_option('bo_5'); // SELECT OPTION 태그로 넘겨받음
}
add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css">', 0);
?>
<script language="Javascript">
function mov()
{
var f = document.fwrite;
location="board.php?bo_table=<?=$bo_table?>&wr_9="+f.wr_9.value+"&wr_8="+f.wr_8.value+"&wr_7="+f.wr_7.value+"&wr_5="+f.wr_5.value+"&wr_2="+f.wr_2.value;
}
</script>
<link rel='stylesheet' href='<?=$board_skin_path?>/style.css' type='text/css'>
<style type="text/css">
@import url('http://fonts.googleapis.com/earlyaccess/nanumgothic.css');
body,div,p,h1,h2,h3,h4,h5,h6,ul,ol,li,dl,dt,dd,table,th,td,form,fieldset,legend,input,textarea,button,select {margin:0; padding:0; font-family:NanumGothic, 나눔고딕, NG, Tahoma, Geneva, sans-serif; font-size:14px; color:#4a4a4a; line-height:22px}
.board_top {width:100%; height:30px;}
.board_top .board_title{ float:left; margin-left:5px;margin-top:3px; background:url(<?=$board_skin_path?>/img/point_title.gif) no-repeat left;}
.board_top .board_title a{ margin:0px 15px 0 10px; color:#474747; font:normal 12pt 돋움; font-weight:bold;}
.sel_ks {font-size:20px; font-weight:600; color:#333; padding:10px 18px; border:1px solid #999 }
#b8x8 {width:100%; position:relative;}
#b8x8 #01 {width:8px; line-height:8px; background:url(<?=$g5['path']?>/img/b8X8/01.gif); float:left;}
#b8x8 #02 {width:8px; line-height:8px; background:url(<?=$g5['path']?>/img/b8X8/02.gif); float:right;}
#b8x8 #03 {width:8px; line-height:8px; background:url(<?=$g5['path']?>/img/b8X8/03.gif); float:left;}
#b8x8 #04 {width:8px; line-height:8px; background:url(<?=$g5['path']?>/img/b8X8/04.gif);}
#b8x8 #05 {height:8px; background:url(<?=$g5['path']?>/img/b8X8/05.gif); float:left;}
#b8x8 #06 {width:8px; background:url(<?=$g5['path']?>/img/b8X8/06.gif); float:left; float:left;}
#b8x8 #07 {height:8px; background:url(<?=$g5['path']?>/img/b8X8/07.gif); float:left;}
#b8x8 #08 {width:8px; background:url(<?=$g5['path']?>/img/b8X8/08.gif);}
#catitle {margin:8px 4px 7px 10px;}
#calink {width:100%; margin-right:7px; position:relative;}
#calink #name1 {margin:8px 0px 0 10px; margin-top:4px; width:68px; float:left; letter-spacing:-1pt}
#calink #name2 {margin-top:4px; margin-left:1px;float:right;}
#calink .on a{font-weight:bold; color:#f86e08; font-size:12px; font-family:굴림,돋움;}
#calink .off a{font-size:12px; font-family:굴림,돋움;font-weight:bold;}
#calink .on ahover{font-weight:bold; color:#f86e08; font-size:12px; font-family:굴림,돋움;}
#calink .off ahover{font-weight:bold; color:#f86e08; font-size:12px; font-family:굴림,돋움;}
#snb {height:34px;}
#snb #title{height:46px; padding:8px 14px 0 10px; border-bottom:1px solid #e8e9ed; background:url(<?=$g5['path']?>/img/bg_sub_title.gif);}
#snb ul.{position:relative; list-style:none; float:left;margin:3px; pading:3px;}
#snb ul li {height:auto;margin:0;padding:0;width:100%;font-size:12px;border-bottom:1px solid #f3f3f3;}
#snb ul li span {margin:0;padding:4px 4px 4px 7px;display:block;position:relative;}
#snb ul .SubMenuOn a{padding:3px 0 0 7px;font-weight:bold; color:#1d1d1d; font-size:12px; font-family:굴림,돋움; background:url(<?=$g5['path']?>/img/arrow_02.gif) no-repeat left;}
#snb ul .SubMenuOff a{color:#646d72; font-size:12px; font-family:굴림,돋움;}
#snb ul .line{height:1px; font-size:1px; background:#f3f3f3;}
#snb ul li ul {border:1px solid #e8e9ed; margin:0 0px 0 0px; background:fdfdfd;}
#snb ul li ul li {border:0; margin:10px 0 3px 10px;}
#snb ul li ul .off a{color:#818e96; font-weight:normal;}
#snb ul li ul .on a{color:#1d1d1d; font-weight:normal;}
</style>
<script type="text/javascript" src="<?=$g5[path]?>/js/jquery.js"></script>
<!--전체테이블-->
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="180" valign="top" style="display:none">
<!-- 좌측메뉴시작-->
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td valign="top" width=180 height=45>
<div id="snb"><a href="./board.php?bo_table=<?=$bo_table?>"><img src="<?=$board_skin_url?>/img/l_title.gif" border=0></a>
<!--<img src="<?=$g5['path']?>/<?=$gr_id?>/img/title_sub14.gif">-->
<?
// 카테고리 뽑아오기
$cate_print = "";
$cate_print .="
<div class=\"wireframemenu\">
<ul class=\"ca\">";
$cate = explode("|", $board[bo_category_list]);
for ($i=0; $i<count($cate); $i++){
if ($sca == $cate[$i]) { $ca="class=on"; } else {$ca="class=off";}
if (trim($cate[$i])){
$cate_print .="<li {$ca}><a href=\"{$g5['bbs_path']}/board.php?bo_table={$bo_table}&sca={$cate[$i]}\">".$cate[$i]."</a></li>";
}
}
$cate_print .= "
</ul>
<ul class=\"ca\"></ul>
</div>
";
// 메뉴 이미지 검사
if($bo_table =="$bo_table"){
$on = "on";
} else {
$on = "off";
}
?>
<?
$line_aticle = 1; // 한줄당 출력 개수
$gooin_bo_table = $bo_table; //게시판명
$ms = " select * from g5_board where bo_table = '$gooin_bo_table' order by bo_category_list and bo_5 ";
$rs = mysql_query($ms);
while ($dt=mysql_fetch_array($rs)) {
$cat_dt = explode("|", $dt[bo_category_list]);
$ex_bo_dt = explode("|", $dt[bo_5]);
?>
<table width='100%' cellpadding='0' cellspacing='0' border='0'>
<tr>
<?
for ($i=0; $i<count($ex_bo_dt); $i++) {
$bo_dt3 = explode("^", $ex_bo_dt[$i]);
if($i%$line_aticle==0) {
echo "</tr><tr>";
}
if($cat_dt[$i]==$sca){
$sub_on = "on";
} else {
$sub_on = "off";
}
?>
<td valign=top>
<table width='100%' cellpadding='0' cellspacing='0' border='0'>
<tr>
<td height=28 style="padding-right:10px;"><div id="calink">
<div id="name1" class="<?=$sub_on?>"> <a href="<?=$g5['path']?>/bbs/board.php?bo_table=<?=$gooin_bo_table?>&sca=<?=$cat_dt[$i]?>&wr_9=<?=$wr_9?>&wr_8=<?=$wr_8?>&wr_7=<?=$wr_7?>&wr_5=<?=$wr_5?>">
<?=$cat_dt[$i]?>
</a></div>
<? for ($q=0; $q<count($bo_dt3); $q++) { ?>
<div id="name2"> <a href="<?=$g5['path']?>/bbs/board.php?bo_table=<?=$gooin_bo_table?>&sca=<?=$cat_dt[$i]?>&wr_9=<?=$wr_9?>&wr_8=<?=$wr_8?>&wr_7=<?=$wr_7?>&wr_5=<?=$bo_dt3[$q]?>">
<? if ($bo_dt3[$q] == '매매') {
echo "<img src='$board_skin_url/img/icon_ca01.gif' width='14' height='14' border=0 align='absmiddle' alt='매매' title='매매'>";
}
else if ($bo_dt3[$q] == '전세') {
echo "<img src='$board_skin_url/img/icon_ca02.gif' width='14' height='14' border='0' alt='전세'>";
}
else if ($bo_dt3[$q] == '월세') {
echo "<img src='$board_skin_url/img/icon_ca03.gif' width='14' height='14' border='0' alt='월세'>";
}
else if ($bo_dt3[$q] == '임대') {
echo "<img src='$board_skin_url/img/icon_ca04.gif' width='14' height='14' border='0' alt='임세'>";
}
?>
</a> </div>
<? } ?>
</div></td>
</tr>
<tr>
<td height="1" colspan="2" bgcolor="#e9e9e9"></td>
</tr>
</table></td>
<? } ?>
</tr>
</table>
<? } ?>
</div>
</td></tr></table>
<!--좌측메뉴 끝-->
</td>
<td width="10" style="display:none"> </td>
<td valign="top">
<table width="100%" cellpadding="0" cellspacing="0">
<tr>
<td>
<div style="border:2px solid #c22212; padding:15px 0; background:#fff">
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr align=center>
<form name="fcategory" method="get">
<input type=hidden name=bo_table value="<?=$bo_table?>">
<td width="100%">
<select name=wr_5 onchange="location='<?=$category_location?>'+this.form.sca.value+'&wr_9='+this.form.wr_9.value+'&wr_8='+this.form.wr_8.value+'&wr_7='+this.form.wr_7.value+'&wr_5='+this.value;" class="sel_ks">
<option value=''>
<?//=$board[bo_5_subj]?>물건형태
<option value='매매'>매매</option>
<option value='전세'>전세</option>
<option value='월세'>월세</option>
<!--<option value='임대'>임대</option>-->
</option>
</select>
<select name=sca onchange="location='<?=$category_location?>'+this.value+'&wr_9='+this.form.wr_9.value+'&wr_8='+this.form.wr_8.value+'&wr_7='+this.form.wr_7.value+'&wr_5='+this.form.wr_5.value;" class="sel_ks">
<option value=''>종류</option>
<?=$category_option?>
</select>
<select name=wr_8 onchange="location='<?=$category_location?>'+this.form.sca.value+'&wr_9='+this.form.wr_9.value+'&wr_8='+this.value+'&wr_7='+this.form.wr_7.value+'&wr_5='+this.form.wr_5.value;" class="sel_ks">
<option value=''>
<?//=$board[bo_8_subj]?>지역
</option>
<?=$bo_8_option?>
</select>
<select name=wr_9 onchange="location='<?=$category_location?>'+this.form.sca.value+'&wr_9='+this.value+'&wr_8='+this.form.wr_8.value+'&wr_7='+this.form.wr_7.value+'&wr_5='+this.form.wr_5.value;" class="sel_ks">
<option value=''>
<?//=$board[bo_9_subj]?>금액별
</option>
<?=$bo_9_option?>
</select>
<select name=wr_7 onchange="location='<?=$category_location?>'+this.form.sca.value+'&wr_9='+this.form.wr_9.value+'&wr_8='+this.form.wr_8.value+'&wr_7='+this.value+'&wr_5='+this.form.wr_5.value;" class="sel_ks">
<option value=''>
<?//=$board[bo_7_subj]?>면적별
</option>
<?=$bo_7_option?>
</select>
</td>
</form>
</tr>
</table>
</div>
<table width="100%"><tr><td height=20></td></tr></table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr style="display:none"><td colspan=7 height=2 ></td></tr>
<tr bgcolor=#F1F1F1 style="display:none">
<td width="40" align=center style="display:none">번호</td>
<td width="220" height="40" style="text-align:center">대표사진</td>
<td align=center width="180">지역/종류/형태</td>
<td style='word-break:break-all;' align=center>[매물번호]매물명
</td>
</tr>
</table>
<div style="height:1px; line-height:1px; font-size:1px; background-color:#ddd; clear:both;"> </div>
<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="sca" value="<?=$sca?>" />
<input type="hidden" name="page" value="<?=$page?>" />
<input type="hidden" name="sw" value="" />
<? for ($i=0; $i<count($list); $i++) { ?>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr align=center <? if ($wr_id == $list[$i][wr_id]) { ?>bgcolor="#FFF9F9"<? }?> onmouseover=this.style.backgroundColor='#fafafa' onmouseout=this.style.backgroundColor='' style="FILTER: blendTrans(duration=0.5);">
<td width="40" height="28" style="display:none">
<?
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:#B3B3B3;'>{$list[$i][num]}</span>";
?>
</td>
<td width="220" style="padding:8px 0">
<a href="<?php echo $list[$i]['href'] ?>">
<?php
//본문내용 텍스트만 가져오기
$str_content = cut_str(strip_tags($list[$i]['wr_content']),200);
?>
<?php
if ($list[$i]['is_notice']) { // 공지사항 ?>
<strong style="width:<?php echo $board['bo_gallery_width'] ?>px;height:<?php echo $board['bo_gallery_height'] ?>px">공지</strong>
<?php } else {
$thumb = get_list_thumbnail($board['bo_table'], $list[$i]['wr_id'], $board['bo_gallery_width'], $board['bo_gallery_height']);
if($thumb['src']) {
$img_content = '<img src="'.$thumb['src'].'" alt="'.$thumb['alt'].'" width="'.$board['bo_gallery_width'].'" height="'.$board['bo_gallery_height'].'">';
} else {
$img_content = '<span style="width:'.$board['bo_gallery_width'].'px;height:'.$board['bo_gallery_height'].'px">no image</span>';
}
echo $img_content;
}
?>
</a>
</td>
<td width="180" class="list">
<?=$list[$i]['wr_8']?><br>
<span style="font-weight:600; display: block; text-align:center; padding:8px 8px 0 8px; font-size:19px">
<?
if ($is_category && $list[$i][ca_name]) {
echo "{$list[$i][ca_name]}";
}
?>
</span>
<span style="font-weight:600; display: block; text-align:center; padding:8px">[<?=$list[$i][wr_5]?>]</span>
</td>
<td align=left class="list" style='word-break:break-all; font-weight:600'>
<div style="padding-left:1px">
<span style="font-size:18px">
<?
$ex3_filed = explode("|",$list[$i][wr_3]);
$ext3_00 = $ex3_filed[0];
$ext3_01 = $ex3_filed[1];
$ext3_02 = $ex3_filed[2];
$ext3_03 = $ex3_filed[3];
?>
[<?=$ext3_02?>]
<?
//echo $nobr_begin;
//echo $list[$i][reply];
//echo $list[$i][icon_reply];
$style = "";
if ($list[$i][is_notice]) $style = " style='font-weight:bold;'";
echo "<a href='{$list[$i][href]}' $style>";
if ($list[$i][wr_1] == 1){
echo "<img src = {$board_skin_url}/img/gp.gif border=0>";
echo " ";
}
if ($list[$i][wr_1] == 2){
echo "<img src = {$board_skin_url}/img/choo.gif border=0>";
echo " ";
}
echo $list[$i][subject];
echo "</a>";
if ($sca == '아파트')
echo $list[$i][ext3_03];
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>";
//echo " " . $list[$i][icon_new];
//echo " " . $list[$i][icon_file];
//echo " " . $list[$i][icon_hot];
//echo $nobr_end;
?>
</span>
<br>
<span style="font-size:18px; color:red; display:block; text-align:left; padding:15px 0">
<?
$p_two = explode("|",$list[$i][wr_2]);
$two01 = $p_two[0];
$two02 = $p_two[1];
$two03 = $p_two[2];
$two04 = $p_two[3];
$two05 = $p_two[4];
$two06 = $p_two[5];
$two07 = $p_two[6];
$two08 = $p_two[7];
$two09 = $p_two[8];
$two10 = $p_two[9];
$add_filed = explode("|",$list[$i][wr_6]);
$add01 = $add_filed[0];
$add02 = $add_filed[1];
$add03 = $add_filed[2];
$add04 = $add_filed[3];
$add05 = $add_filed[4];
$add06 = $add_filed[5];
$add07 = $add_filed[6];
$add08 = $add_filed[7];
$add09 = $add_filed[8];
$add10 = $add_filed[9];
$add11 = $add_filed[10];
$add12 = $add_filed[11];
$add13 = $add_filed[12];
$add14 = $add_filed[13];
$add15 = $add_filed[14];
$add16 = $add_filed[15];
$add17 = $add_filed[16];
$add18 = $add_filed[17];
$add19 = $add_filed[18];
$add20 = $add_filed[19];
$add21 = $add_filed[20];
$add22 = $add_filed[21];
$add23 = $add_filed[22];
$add24 = $add_filed[23];
$add25 = $add_filed[24];
$add26 = $add_filed[25];
$add27 = $add_filed[26];
$add28 = $add_filed[27];
$add29 = $add_filed[28];
$add30 = $add_filed[29];
$add31 = $add_filed[30];
$add32 = $add_filed[31];
$add33 = $add_filed[32];
$add34 = $add_filed[33];
$add35 = $add_filed[34];
$add36 = $add_filed[35];
$add37 = $add_filed[36];
$add38 = $add_filed[37];
$add39 = $add_filed[38];
$add40 = $add_filed[39];
$add41 = $add_filed[40];
$add42 = $add_filed[41];
$add43 = $add_filed[42];
$add44 = $add_filed[43];
$add45 = $add_filed[44];
$add46 = $add_filed[45];
$add47 = $add_filed[46];
$add48 = $add_filed[47];
$add49 = $add_filed[48];
$add50 = $add_filed[49];
$add51 = $add_filed[50];
$add52 = $add_filed[51];
$add53 = $add_filed[52];
$add54 = $add_filed[53];
$add55 = $add_filed[54];
&nb
답변 3
이런내용은
학습이 아닌 제작중 해결로 보여집니다.
제작의뢰에서 요청하시는게 합당해보입니다.
페이징 전체 데이터수를 가져오는 query 문의 문제로 보여짐
/bbs/list.php 파일에서 해결해야 합니다.
우선 그누보드에서 list에서 select할때 기본적 출력해주는 방식을 정확하게 이해를 하셔야 합니다.
위와 같이 여분 필드를 조건을 가지고 select할경우 조건에 맞는 sql문장이 정상적으로 구성이 되었다를 보여야합니다.
그래야 나중에 총 row건수 / 페이지당 건수를 해서 정확하게 페이지갯수를 표시합니다.
select조건에서 total row건수랑 출력되는 갯수가 서로 안맞을경우 페잉이 틀어지거나 밀릴수 있습니다. 따라서 이부분을 잘 살펴보시면 해결하실수 있을듯합니다.