od_time 역순 나오게 하기 채택완료
블랑숑
7년 전
조회 3,418
sql_query(" update {$g5['member_table']} set mb_level = '$level_up' where mb_id = '$member[mb_id]' "); } ?>
이게 전문이거든요?
취지가 뭐냐면 회원 로그인시 누적 금액에 따라 회원 등급을 올리고 최근 구매일로부터 1년 이상 경과한 고객은 레벨 2로 낮춰버리는 그런 프로그램이에요.
밑에 echo 는 그냥 테스트로 출력하는거구요
근데
이 부분이 최신것이 아니라 제일 옛날게 나오네요 ㅜㅜ
order by a.od_time desc limit 1";
이거를 od_time이나 asc로 바꾸어도 동일하네요
도저히 바뀌질 않네요 ㅎㅎ... 우울하네요 ㅠㅠ
댓글을 작성하려면 로그인이 필요합니다.
답변 2개
채택된 답변
+20 포인트
7년 전
당연합니다
sum(a.od_cart_price) <--- sum은 하나의 행만 출력합니다(limit 1, order by는 아무 의미가 없다는 말씀)
sum을 삭제 해보세요. 당연히 최신것이 나옵니다
서브쿼리를 사용하든지
if($ctoday < 365) { <--- 다음에 sum 쿼리를 넣든지 하세요
그리고 위 소스에서는 쿼리에서 member_table을 join할 이유가 없습니다(속도만 느리게 만들 뿐)
로그인 후 평가할 수 있습니다
답변에 대한 댓글 2개
�
블랑숑
7년 전
�
블랑숑
7년 전
이렇게 두번 쓰니까 잘 되는 것 같긴 한데 맞는건가요?
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
$sql = "select sum(od_cart_price) od_cart_price from {$g5['g5_shop_order_table']} where od_status != '취소' and mb_id = '{$member['mb_id']}'";
$row = sql_fetch($sql);
if($member['mb_level'] < 10) {
if($row['od_cart_price'] <= 50000){
$level_up = 2;
}elseif($row['od_cart_price'] <= 100000){
$level_up = 3;
}elseif($row['od_cart_price'] <= 150000){
$level_up = 4;
}elseif($row['od_cart_price'] <= 200000){
$level_up = 5;
}elseif($row['od_cart_price'] <= 250000){
$level_up = 6;
}elseif($row['od_cart_price'] <= 300000){
$level_up = 7;
}elseif($row['od_cart_price'] <= 500000){
$level_up = 8;
}elseif($row['od_cart_price'] <= 1000000){
$level_up = 9;
}
sql_query(" update {$g5['member_table']} set mb_level = '$level_up' where mb_id = '$member[mb_id]' ");
}
?>
<?php echo $row['od_cart_price']; ?><br>
<?php
$sql = "select od_time from {$g5['g5_shop_order_table']} order by od_time desc limit 1";
$row = sql_fetch($sql);
$atoday = time();
$btoday = strtotime($row['od_time']);
$ctoday = round(($atoday - $btoday) / (60 * 60 * 24));
if($member['mb_level'] < 10) {
if($ctoday > 365) {
$level_up = 2;
}
sql_query(" update {$g5['member_table']} set mb_level = '$level_up' where mb_id = '$member[mb_id]' ");
}
?>
<?php echo $ctoday; ?><br>
<?php echo substr($row['od_time'],2,8); ?><br>