셀렉트 정렬후(?) 페이지 번호를 누르면 이상해집니다.

셀렉트 정렬후(?) 페이지 번호를 누르면 이상해집니다.

QA

셀렉트 정렬후(?) 페이지 번호를 누르면 이상해집니다.

본문

지역 셀레트에서 해당 지역을 선택하여

리스트에 나온 게시글의 2번 페이지 번호를 누르면 지역이 풀려 버리면서

전체게시글의 2번 페이지가 나옵니다.

 

2번 3번 게시글

http://아이디.ivyro.net/g5/bbs/board.php?bo_table=apt_sale&page=&page=2

http://아이디.ivyro.net/g5/bbs/board.php?bo_table=apt_sale&page=&page=3

 

1번 페이지 정상링크 (지역 선택후 정상적으로 보여지는 1번 페이지 링크
http://아이디.ivyro.net/g5/bbs/board.php?bo_table=apt_sale&sca=&wr_9=&wr_8=중앙동&wr_7=&wr_5=

 

 

사용한 부동산 스킨

https://sir.kr/g4_skin/153428

 

 

-----------------------------------------------

list.skin.php

 

// 카테고리 분할
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);
?>

 

<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;">
                        <option value=''>
                          <?//=$board[bo_8_subj]?>지역
                          </option>
                        <?=$bo_8_option?>
                      </select>

 

 

 

----------------------

skin.exe.php (list.skin.php 파일에서 skin.exe.php 파일을 인클루드 합니다.)

 

 

<?
function get_sql_search1($search_ca_name, $search_field, $search_text, $search_operator='and',$wr_7,$wr_8,$wr_9,$wr_5)
{
    global $g5;

    $str = "";
    if ($search_ca_name)
        $str = " ca_name = '$search_ca_name' ";


    if ($wr_7) {
 if ($str) {
 $str = "(" . $str . " and wr_7 = '$wr_7') ";
 } else {
 $str = " wr_7 = '$wr_7' ";
 }
    }
 if ($wr_8) {
 if ($str) {
 $str = "(" . $str . " and wr_8 = '$wr_8') ";
 } else {
 $str = " wr_8 = '$wr_8' ";
 }
    }
 if ($wr_9) {
 if ($str) {
 $str = "(" . $str . " and wr_9 = '$wr_9') ";
 } else {
 $str = " wr_9 = '$wr_9' ";
 }
    }
 if ($wr_5) {
 if ($str) {
 $str = "(" . $str . " and wr_5 = '$wr_5') ";
 } else {
 $str = " wr_5 = '$wr_5' ";
 }
    }


    $search_text = trim($search_text);

    if (!$search_text)
        return $str;

    if ($str)
        $str .= " and ";

    // 쿼리의 속도를 높이기 위하여 ( ) 는 최소화 한다.
    $op1 = "";

    // 검색어를 구분자로 나눈다. 여기서는 공백
    $s = array();
    $s = explode(" ", $search_text);

    // 검색필드를 구분자로 나눈다. 여기서는 +
    //$field = array();
    //$field = explode("||", trim($search_field));
    $tmp = array();
    $tmp = explode(",", trim($search_field));
    $field = explode("||", $tmp[0]);
    $not_comment = $tmp[1];

    $str .= "(";
    for ($i=0; $i<count($s); $i++) {
        // 검색어
        $search_str = trim($s[$i]);
        if ($search_str == "") continue;

        // 인기검색어
        //$sql = " insert into $g4[popular_table] set pp_word = '$search_str', pp_date = '$g4[time_ymd]', pp_ip = '$_SERVER[REMOTE_ADDR]' ";
  $sql = " insert into $g4[popular_table] set pp_word = '$search_str', pp_date = '".G5_TIME_YMD."', pp_ip = '$_SERVER[REMOTE_ADDR]' ";
        sql_query($sql, FALSE);

        $str .= $op1;
        $str .= "(";

        $op2 = "";
        for ($k=0; $k<count($field); $k++) { // 필드의 수만큼 다중 필드 검색 가능 (필드1+필드2...)
            $str .= $op2;
            switch ($field[$k]) {
                case "mb_id" :
                case "wr_name" :
                    $str .= " $field[$k] = '$s[$i]' ";
                    break;
                case "wr_hit" :
                case "wr_good" :
                case "wr_nogood" :
                    $str .= " $field[$k] >= '$s[$i]' ";
                    break;
                // 번호는 해당 검색어에 -1 을 곱함
                case "wr_num" :
                    $str .= "$field[$k] = ".((-1)*$s[$i]);
                    break;
                // LIKE 보다 INSTR 속도가 빠름
                default :
                    if (preg_match("/[a-zA-Z]/", $search_str))
                        $str .= "INSTR(LOWER($field[$k]), LOWER('$search_str'))";
                    else
                        $str .= "INSTR($field[$k], '$search_str')";
                    break;
            }
            $op2 = " or ";
        }
        $str .= ")";

        //$op1 = ($search_operator) ? ' and ' : ' or ';
        $op1 = " $search_operator ";
    }
    $str .= " ) ";
    if ($not_comment)
        $str .= " and wr_is_comment = '0' ";

    return $str;
}


// 분류 사용 여부
$is_category = false;
if ($board[bo_use_category])
{
    $is_category = true;
    $category_location = "./board.php?bo_table=$bo_table&sca=";
    //$category_option = get_category_option($bo_table); // SELECT OPTION 태그로 넘겨받음
 $category_option2 = get_category_option($bo_table); // SELECT OPTION 태그로 넘겨받음
}

$sop = strtolower($sop);
if ($sop != "and" && $sop != "or")
    $sop = "and";

// 분류 선택 또는 검색어가 있다면
if ($sca || $stx || $wr_7 || $wr_8 || $wr_9 || $wr_5)
{
    $sql_search = get_sql_search1($sca, $sfl, $stx, $sop, $wr_7, $wr_8, $wr_9, $wr_5);

    // 가장 작은 번호를 얻어서 변수에 저장 (하단의 페이징에서 사용)
    $sql = " select MIN(wr_num) as min_wr_num from $write_table ";
    $row = sql_fetch($sql);
    $min_spt = $row[min_wr_num];

    if (!$spt) $spt = $min_spt;

    $sql_search .= " and (wr_num between '".$spt."' and '".($spt + $config[cf_search_part])."') ";

    // 원글만 얻는다. (코멘트의 내용도 검색하기 위함)
    $sql = " select distinct wr_parent from $write_table where $sql_search ";
    $result = sql_query($sql);
    //$total_count = mysql_num_rows($result);
 $total_count = sql_num_rows($result);
}
else
{
    $sql_search = "";

    $total_count = $board[bo_count_write];


}

$total_page  = ceil($total_count / $board[bo_page_rows]);  // 전체 페이지 계산
if (!$page) { $page = 1; } // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $board[bo_page_rows]; // 시작 열을 구함

// 관리자라면 CheckBox 보임
$is_checkbox = false;
if ($member[mb_id] && ($is_admin == "super" || $group[gr_admin] == $member[mb_id] || $board[bo_admin] == $member[mb_id]))
    $is_checkbox = true;

// 정렬에 사용하는 QUERY_STRING
$qstr2 = "bo_table=$bo_table&sop=$sop";

if ($board[bo_gallery_cols])
    $td_width = (int)(100 / $board[bo_gallery_cols]);

// 정렬
// 인덱스 필드가 아니면 정렬에 사용하지 않음
//if (!$sst || ($sst && !(strstr($sst, 'wr_id') || strstr($sst, "wr_datetime")))) {
if (!$sst)
{
    if ($board[bo_sort_field])
        $sst = $board[bo_sort_field];
    else
        $sst  = "wr_num, wr_reply";
    $sod = "";
}
$sql_order = " order by $sst $sod ";

if ($sca || $stx || $wr_7 || $wr_8 || $wr_9 || $wr_5)
{
    $sql = " select distinct wr_parent from $write_table where $sql_search $sql_order limit $from_record, $board[bo_page_rows] ";
}
else
{
//범위 검색 시작
if($srl && $srh) {
$sql_search_range = " ($sst BETWEEN '".$srl."' AND '".$srh."') and ";
}
//범위 검색 끝
    $sql = " select * from $write_table where $sql_search_range wr_is_comment = 0 $sql_order limit $from_record, $board[bo_page_rows] ";
}

$result = sql_query($sql);

// 년도 2자리
//$today2 = $g4[time_ymd];
$today2 = G5_TIME_YMD;

 

//$list = array(); 삭제시작부분
$list = array();
$i = 0;

if (!$sca && !$stx && !$wr_7 && !$wr_8 && !$wr_9 && !$wr_5)
{
    $arr_notice = split("\n", trim($board[bo_notice]));
    for ($k=0; $k<count($arr_notice); $k++)
    {
        if (trim($arr_notice[$k])=='') continue;

        $row = sql_fetch(" select * from $write_table where wr_id = '$arr_notice[$k]' ");

        if (!$row[wr_id]) continue;

        $list[$i] = get_list($row, $board, $board_skin_url, $board[bo_subject_len]);
        $list[$i][is_notice] = true;

        $i++;
    }
}

$k = 0;

while ($row = sql_fetch_array($result))
{
    // 검색일 경우 wr_id만 얻었으므로 다시 한행을 얻는다
    if ($sca || $stx || $wr_7 || $wr_8 || $wr_9 || $wr_5)
        $row = sql_fetch(" select * from $write_table where wr_id = '$row[wr_parent]' ");

    $list[$i] = get_list($row, $board, $board_skin_url, $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=");

$list_href = '';
$prev_part_href = '';
$next_part_href = '';
if ($sca || $stx || $wr_7 || $wr_8 || $wr_9 || $wr_5) 
{
    $list_href = "./board.php?bo_table=$bo_table";

    //if ($prev_spt >= $min_spt)
    $prev_spt = $spt - $config[cf_search_part];
    if (isset($min_spt) && $prev_spt >= $min_spt)
        $prev_part_href = "./board.php?bo_table=$bo_table".$qstr."&spt=$prev_spt";

    $next_spt = $spt + $config[cf_search_part];
    if ($next_spt < 0)
        $next_part_href = "./board.php?bo_table=$bo_table".$qstr."&spt=$next_spt";
}

$write_href = "";
if ($member[mb_level] >= $board[bo_write_level])
    $write_href = "./write.php?bo_table=$bo_table";

$nobr_begin = $nobr_end = "";
if (preg_match("/gecko|firefox/i", $_SERVER['HTTP_USER_AGENT'])) {
    $nobr_begin = "<nobr style='display:block; overflow:hidden;'>";
    $nobr_end   = "</nobr>";
}

// RSS 보기 사용에 체크가 되어 있어야 RSS 보기 가능 061106
$rss_href = "";
if ($board[bo_use_rss_view])
    $rss_href = "./rss.php?bo_table=$bo_table";

$stx = get_text(stripslashes($stx));

$arrayf = explode("|",$board[bo_category_list]);
$arrays1 = explode("|",$board[bo_5]);
$arrayc1 = explode("|",$board[bo_9]);


 for($i=0; $i<count($arrayf); $i++){

  if($sca==$arrayf[$i]){
   $tu = $i+1;
  }
 }

 

//echo $write[wr_5]."<br>";

 

for($i=0; $i<count($arrayf); $i++){

    $arrays2[$i] = explode("^",$arrays1[$i]);
    $arrayc2[$i] = explode("^",$arrayc1[$i]);


$ts = $i+1;
for($j=0; $j<count($arrays2[$i]); $j++){

  $arrayc3[$i][$j] = explode("~",$arrayc2[$i][$j]);
  if($ts==$tu){
    $wr_5s .= "<option value='".$arrays2[$i][$j]."'";
    if($wr_5==$arrays2[$i][$j]){
    $wr_5s .= " selected ";
    $tvs = $j;
    }
    $wr_5s .=">".$arrays2[$i][$j]."</option>";

  }
}

}
?>
 

이 질문에 댓글 쓰기 :

답변 1

위 문구로는 에러파악  어려워요 

제작의뢰게시판에 남기던가 

 

 

 

 

 

 

 

 

 

연락처를 쪽지로보네세요 봐드릴게요

 

답변을 작성하시기 전에 로그인 해주세요.
전체 59,640
QA 내용 검색

회원로그인

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