함수? 스킨관련 질문좀 드리겠습니다.
본문
안녕하세요 질문좀 드리겠습니다
https://sir.kr/yc5_tip/1567?sfl=wr_subject%7C%7Cwr_content&stx=od_cart_price
위스킨을보고 정상적으로 출력이 잘되고있는데요
<th scope="col" id="mb_list_point"><?php echo subject_sort_link('mb_point', '', 'desc') ?> 주문금액</a></th>
이렇게 넣어놨는데
문제는 클릭시 정렬을 하고싶은데요 mb_point 이부분을 od_cart_price 이렇게 변경해도 정렬이 안되는데
정렬을 할수있는 방법이 있을까요~?
답변 1
검색이나 정렬을 하려면
우선 데이터 원본에 (from절) 데이터가 있어야 합니다.
이런식이 되겠죠
select mb_id, od_cart_price from 테이블 order by od_cart_price desc;
적용하신 방법은
회원테이블을 쿼리해서
출력하는 for문 안에 mb_id로 주문테이블을 다시 쿼리해서 값만 뽑아와 출력하므로
정렬이 안되는 것입니다
우선 수정하신 부분을 되돌리시고요
1.
https://github.com/gnuboard/gnuboard5/blob/master/adm/member_list.php#L7
$sql_common = " from {$g5['member_table']} ";
$sql_common = " from {$g5['member_table']} as mb ";
$sql_common .= " left join {$g5['g5_shop_order_table']} as od on od.od_status != '취소' and od.mb_id = mb.mb_id ";
2.
https://github.com/gnuboard/gnuboard5/blob/master/adm/member_list.php#L64
$sql = " select * {$sql_common} {$sql_search} {$sql_order} limit {$from_record}, {$rows} ";
$sql = " select mb.*, mb.mb_id as mb_id, sum(od.od_cart_price) as od_cart_price {$sql_common} {$sql_search} {$sql_order} limit {$from_record}, {$rows} ";
3.
이건 똑같이 써도 되고요
<?php echo subject_sort_link('od_cart_price', '', 'desc') ?>
4.
각 회원의 주문금액 출력은
<?php echo number_format($row['od_cart_price']); ?>
회원테이블과 주문테이블에 mb_id 똑같은 칼럼이 있어서
1052 : Column 'mb_id' in where clause is ambiguous 에러가 나타날 수 있으니 주의
https://github.com/gnuboard/gnuboard5/blob/master/adm/member_list.php#L9-L28
where mb_id = 'test' // 이런 구문은 에러
where mb.mb_id = 'test' // 이렇게
스위치문에 아래 case 추가해주면 좋겠지요?
switch ($stx) {
case 'mb_id':
$sql_search .= " (mb.mb_id = '{$stx}') ";
break;
}