리스트 정렬에 대한 질문입니다

리스트 정렬에 대한 질문입니다

QA

리스트 정렬에 대한 질문입니다

본문

A라는 게시판에

1번 게시물에

wr_11=2018-01-01, wr_12=100원, wr_13=라면

wr_14=2018-01-02, wr_15=200원, wr_16=밥 (추가입력됨)

wr_17=2018-01-03, wr_18=150원, wr_19=된장 (추가입력됨)

 

2번 게시물에

wr_11=2018-01-02, wr_12=120원, wr_13=국물

wr_14=2018-01-03, wr_15=240원, wr_16=콩나물 (추가입력됨)

wr_17=2018-01-04, wr_18=170원, wr_19=고추장 (추가입력됨)

 

이렇게 등록되있을때

리스트에 최근 날자순으로 정렬하고 싶습니다

방법좀 알려주세요 ㅠㅜ

 

이 질문에 댓글 쓰기 :

답변 2

6가지를 날짜순으로 정렬하려면,

배열에 넣은 후에

배열을 날짜순으로 정렬한 후에

출력하면 됩니다.

각 게시물의 순서를 변경하려면, 휴란드 님이 알려주신 방법대로 해야하구요.
저기 6개만 따로 모아서 순서대로 보여줄려면,
http://php.net/manual/kr/function.array-multisort.php
이 함수를 참조하여,
list.skin.php 에서 80줄 아래 추가


for ($i=0; $i<count($list); $i++) {
            $in_arr=array('date'=>$list[$i]['is_notice']['wr_11'], 'price'=>$list[$i]['is_notice']['wr_12'], 'name'=>$list[$i]['is_notice']['wr_13']);
            array_push($data_arr,$in_arr);
            $in_arr=array('date'=>$list[$i]['is_notice']['wr_14'], 'price'=>$list[$i]['is_notice']['wr_15'], 'name'=>$list[$i]['is_notice']['wr_16']);
            array_push($data_arr,$in_arr);
            $in_arr=array('date'=>$list[$i]['is_notice']['wr_17'], 'price'=>$list[$i]['is_notice']['wr_18'], 'name'=>$list[$i]['is_notice']['wr_19']);
            array_push($data_arr,$in_arr);     

아래의 출력할 부분에 아래 소스 추가

<?
	foreach ($data_arr as $key => $arr) {
		$date[$key]  = $arr['date'];
	}
    array_multisort($date, SORT_ASC, $data_arr);
    
	foreach ($data_arr as $key => $arr) {
        echo "날짜:".$arr['date'].", 가격:".$arr['price'].", 품목:".$arr['name'];
    }
?>

/bbs/list.php sst값을 조절하면 됩니다.

 

1. wr_11등 원하는 필드를 추가해주세요.

$sst = preg_match("/^(wr_datetime|wr_hit|wr_good|wr_nogood|wr_11)$/i", $sst) ? $sst : "";

 

2. sst, sod등의 값을 get 혹은 post로 넘기세요.

ex) url/bbs/board.php?bo_table=test&sst=wr_11&sod=desc

 

2-1. get혹은 post로 넘기지 않고 모든 게시판을 기본적으로 고정시키는 법 (list.php)

아래 소스부분을 찾아 sst와 sod값을 지정하세요.

    if ($board['bo_sort_field']) {
        $sst = $board['bo_sort_field'];
    } else {
        $sst  = "wr_11";
        $sod = "desc 또는 asc";
    }
 

2-2. 특정 게시판만 적용시킬 경우

 

if ($sst) {
    $sql_order = " order by {$sst} {$sod} ";
}

위 소스 바로 아래에 추가해주세요.

if ($bo_table == 'test') {
    $sql_order = " order by wr_11 desc ";
}

 

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

회원로그인

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