안녕하세요! 판다왕 입니다.
빗아님이 남겨주신 단골고객 불러오기
보고 영카트 관리자 페이지에 단골고객 페이지를 만들어 누적 구매 건수와 금액 추가 하는데 성공하였습니다.
해당 고객의 최종접속일을 추가하려 하는데 화면 캡쳐이미지와 같이 구매건수, 금액은 잘 나옵니다.
최종접속일을 추가 했는데 날짜가 제대로 안나오네요~ 코드가 잘못된거 같은데 도움 부탁 드립니다.
항상 도와주셔서 감사합니다.

Copy
<?php
$sub_menu = "200850";
include_once('./_common.php');
auth_check_menu($auth, $sub_menu, 'r');
include_once ('./admin.head.php');
?>
<?php
function array_msort($array, $cols){ // 배열 재정열 함수
$colarr = array();
foreach ($cols as $col => $order) {
$colarr[$col] = array();
foreach ($array as $k => $row) { $colarr[$col]['_'.$k] = strtolower($row[$col]); }
}
$eval = 'array_multisort(';
foreach ($cols as $col => $order) {
$eval .= '$colarr[\''.$col.'\'],'.$order.',';
}
$eval = substr($eval,0,-1).');';
eval($eval);
$ret = array();
foreach ($colarr as $col => $arr) {
foreach ($arr as $k => $v) {
$k = substr($k,1);
if (!isset($ret[$k])) $ret[$k] = $array[$k];
$ret[$k][$col] = $array[$k][$col];
}
}
return array_values($ret);
}
?>
<link rel="stylesheet" href="<?php echo G5_ADMIN_URL; ?>/css/admin.css">
<div class="local_desc02 local_desc">
<p>단골 고객<span>(비회원은 포함되지 않습니다.)</span></p>
</div>
<div class="tbl_head01 tbl_wrap">
<table>
<tr>
<th>순위</th>
<th>회원 ID</th>
<th>이름</th>
<th>누적 주문</th>
<th>총 구매금액</th>
<th>최종접속일</th>
</tr>
<?php
$ranking = array();
$list = 0;
$sql = "select a.mb_id,a.od_cart_price,b.mb_name from {$g5['g5_shop_order_table']} a inner join {$g5['member_table']} b on a.mb_id = b.mb_id where a.od_status != '취소' and a.mb_id != ''"; // 주문상태 취소를 제외, 비회원 제외하고 불러옵니다.
$rs = sql_query($sql);
while($row = sql_fetch_array($rs)){
$search_key = array_search($row['mb_id'], array_column($ranking, 'mb_id'));
if($search_key > -1){
$ranking[$search_key]['price'] += $row['od_cart_price'];
$ranking[$search_key]['count'] += 1;
} else {
$ranking[$list]['mb_id'] = $row['mb_id'];
$ranking[$list]['mb_name'] = $row['mb_name'];
$ranking[$list]['price'] = $row['od_cart_price'];
$ranking[$list]['count'] = 1;
$ranking[$list]['mb_today_login'] = $row['mb_today_login'];
$list++;
}
}
$rank = array_msort($ranking, array('price'=>SORT_DESC)); // 배열 재정열
if(count($rank) > 20) $count = 20; // 출력 갯수
else $count = count($rank);
for($i=0; $i<$count; $i++){
?>
<tr>
<td><?php echo $i + 1;?></td>
<td><?=$rank[$i]['mb_id']?></td>
<td><?=$rank[$i]['mb_name']?></td>
<td><?=number_format($rank[$i]['count'])?><span>건</span></td>
<td><?=number_format($rank[$i]['price'])?><span>원</span></td>
<td><?php echo date("Y.m.d H:i", strtotime($row['mb_today_login'])); ?></td>
</tr>
<?php } if($i == 0){?>
<tr>
<td colspan="50">아직 단골 고객이 없습니다.</td>
</tr>
<?php }?>
</table>
</div>
<?php
include_once ('./admin.tail.php');
답변 2개 / 댓글 7개
채택된 답변
+20 포인트
이게 빠져있어서 그렇습니다 b.mb_today_login
Copy
$sql = "select a.mb_id,a.od_cart_price,b.mb_name,b.mb_today_login from {$g5['g5_shop_order_table']} a inner join {$g5['member_table']} b on a.mb_id = b.mb_id where a.od_status != '취소' and a.mb_id != ''"; // 주문상태 취소를 제외, 비회원 제외하고 불러옵니다.
답변에 대한 댓글 6개
2022-02-02 (수) 14:59:42
답변 감사합니다. 적용 해보았는데 동일하네요~~~ 뭐가 문제 인건지 알수가 없네요.. ㅠ.ㅠ
DogFoot개발
2022-02-02 (수) 15:32:56
<td><?=$ranking[$list]['mb_today_login']?></td> 그냥 한번 이렇게 변경 해보시겠어요?
원인이 mb_today_login이것을 쿼리에 반영하지 못한 것이고요.
두번째 원인은 출력에 문제가 있을수 있습니다.
원인이 mb_today_login이것을 쿼리에 반영하지 못한 것이고요.
두번째 원인은 출력에 문제가 있을수 있습니다.
2022-02-02 (수) 15:50:48
귀한 시간 내주셔서 너무 감사합니다. 알려주신 대로 해보니 접속일이 안뜨네요... ㅠ.ㅠ 저도 열심히 찾아보고는 있는데 쉽지 않네요
DogFoot개발
2022-02-02 (수) 15:53:09
원인 찾는게 한계가 있네요^^;
마지막으로 제가 조언드릴수 있는 것은 mb_today_login 여기에 값이 있는지 확인 부탁드립니다
새해 복 많이 받으세요~^^
마지막으로 제가 조언드릴수 있는 것은 mb_today_login 여기에 값이 있는지 확인 부탁드립니다
새해 복 많이 받으세요~^^
2022-02-02 (수) 15:55:51
해결하면 팁에 남기도록 하겠습니다. 같이 고민해주셔서 너무 너무 감사합니다. 행복한 하루 보내세요~~~
2022-02-02 (수) 16:14:07
해결 했습니다.
<td><?=$rank[$i]['mb_today_login']?></td> 이렇게 해야 제대로 출력이 되네요~~~
덕분에 실마리를 찾을 수 있었습니다. 고맙습니다.
<td><?=$rank[$i]['mb_today_login']?></td> 이렇게 해야 제대로 출력이 되네요~~~
덕분에 실마리를 찾을 수 있었습니다. 고맙습니다.
2023-02-04 (토) 21:31:34
원하던 자료였는데 감사합니다.
답변에 대한 댓글 1개
답변을 작성하려면 로그인이 필요합니다.