Copy
$sql = "
select a.mb_id, b.mb_name, wr_12, count(*) as cnt , sum(a.wr_31) as tot
from {$write_table} a
left outer join {$g5['member_table']} b on a.mb_id = b.mb_id
where wr_29 between '{$stx1}' and '{$stx2}'
group by a.mb_id, b.mb_name ORDER BY tot DESC";
$result = sql_query($sql);
while ($row = sql_fetch_array($result)) {
$list_name = explode('||',$row['wr_12']);
기간내에 포함되는 지난 모든 게시글의 wr_12값을 뿌려주고 싶은데..
저렇게 하니까 기간내 모든 wr_12값이 아닌 바로 이전 게시글의 wr_12값만 가져옵니다.
기간내 모든 wr_12값을 전부 뿌려줄려면 어떻게 해야 하나요?
답변 2개 / 댓글 10개
채택된 답변
+20 포인트
2021-09-07 (화) 17:39:32
$sql = "
select a.mb_id, b.mb_name, group_concat( wr_12) wr_12, count(*) as cnt , sum(a.wr_31) as tot
from {$write_table} a
left outer join {$g5['member_table']} b on a.mb_id = b.mb_id
where wr_29 between '{$stx1}' and '{$stx2}'
group by a.mb_id, b.mb_name ORDER BY tot DESC";
dev2lgb
2021-09-07 (화) 16:45:10
음 저렇게 하시면 모든 기간내에 wr_12값 가져오실거 같은데..
나머지 게시글이 wr_29 값이 없거나, mb_id 가 없거나.. 조건에 맞지 않거나 하지 아닐까요..?
답변에 대한 댓글 10개
2021-09-07 (화) 16:46:30
2021-09-07 (화) 16:48:24
wr_12값이 배열로 들어가 있어서 안나오는 경우도 있나요?
각 게시물마다 wr_12값이 몇개씩 들어가 있어서 explode로 뽑아내고 있는데...
각 게시물마다 wr_12값이 몇개씩 들어가 있어서 explode로 뽑아내고 있는데...
dev2lgb
2021-09-07 (화) 17:22:04
wr_12 값이 배열로 들어갔을 리는 없을거같아요
위에 보니까 abc||cde||fg 이런식으로 들어가 있으신거같은데 하나의 값이죠..
$result = sql_query($sql);
이부분 윗줄에서
echo $sql;
찍어보시고
나온 쿼리문
phpmyadmin 에서 쿼리 돌려보시면 정상적으로 원하시는 값이 나오나요?
위에 보니까 abc||cde||fg 이런식으로 들어가 있으신거같은데 하나의 값이죠..
$result = sql_query($sql);
이부분 윗줄에서
echo $sql;
찍어보시고
나온 쿼리문
phpmyadmin 에서 쿼리 돌려보시면 정상적으로 원하시는 값이 나오나요?
2021-09-07 (화) 17:28:39
네. 한 회원이 여러개 올리는 경우가 많습니다.
print_r2 찍어봐도... 값은 마지막 것만 나옵니다. ㅠㅠ
print_r2 찍어봐도... 값은 마지막 것만 나옵니다. ㅠㅠ
dev2lgb
2021-09-07 (화) 17:30:18
아.. 쿼리가 아예 잘못 됐네요...
혹시 멤버테이블을 조인한 이유가 있나요?
회원 한명당 하나만 불러오시나요?
그렇다면, wr_12는 그회원이 작성한 글중 어떤걸 기준으로 뽑으시나요?
아.. 기간내에 그회원이 작성한 모든글의 wr_12의 값인가요?
[code]
$sql = "
select a.mb_id, b.mb_name, wr_12, count(*) as cnt , sum(a.wr_31) as tot
from {$write_table} a
left outer join {$g5['member_table']} b on a.mb_id = b.mb_id
where wr_29 between '{$stx1}' and '{$stx2}'
group by a.mb_id, b.mb_name ORDER BY tot DESC";
[/code]
혹시 멤버테이블을 조인한 이유가 있나요?
회원 한명당 하나만 불러오시나요?
그렇다면, wr_12는 그회원이 작성한 글중 어떤걸 기준으로 뽑으시나요?
아.. 기간내에 그회원이 작성한 모든글의 wr_12의 값인가요?
[code]
$sql = "
select a.mb_id, b.mb_name, wr_12, count(*) as cnt , sum(a.wr_31) as tot
from {$write_table} a
left outer join {$g5['member_table']} b on a.mb_id = b.mb_id
where wr_29 between '{$stx1}' and '{$stx2}'
group by a.mb_id, b.mb_name ORDER BY tot DESC";
[/code]
2021-09-07 (화) 17:32:15
멤버테이블을 조인한 이유는 같은 아이디값을 검색, wr_31값을 더해서 순위를 메기기 위해서 조인을 했습니다.
dev2lgb
2021-09-07 (화) 17:36:23
그렇면... 제 짧은 지식으로는..
while문 안에서 쿼리를 한번더 돌리셔서, wr_12값을 찍어주는게 좋을거같아요!
분명히 더 좋고 빠른방법은 있겠지만.. 그건 다른분이 아마!
[code]
$sql = "
select a.mb_id, b.mb_name, count(*) as cnt , sum(a.wr_31) as tot
from {$write_table} a
left outer join {$g5['member_table']} b on a.mb_id = b.mb_id
where wr_29 between '{$stx1}' and '{$stx2}'
group by a.mb_id, b.mb_name ORDER BY tot DESC";
$result = sql_query($sql);
while ($row = sql_fetch_array($result)) {
$sql = "
select wr_12
from {$write_table}
where mb_id = {$row['mb_id']}
";
// 다시 반복문 써서 출력
$list_name = explode('||',$row2['wr_12']);
~~~~
[/code]
while문 안에서 쿼리를 한번더 돌리셔서, wr_12값을 찍어주는게 좋을거같아요!
분명히 더 좋고 빠른방법은 있겠지만.. 그건 다른분이 아마!
[code]
$sql = "
select a.mb_id, b.mb_name, count(*) as cnt , sum(a.wr_31) as tot
from {$write_table} a
left outer join {$g5['member_table']} b on a.mb_id = b.mb_id
where wr_29 between '{$stx1}' and '{$stx2}'
group by a.mb_id, b.mb_name ORDER BY tot DESC";
$result = sql_query($sql);
while ($row = sql_fetch_array($result)) {
$sql = "
select wr_12
from {$write_table}
where mb_id = {$row['mb_id']}
";
// 다시 반복문 써서 출력
$list_name = explode('||',$row2['wr_12']);
~~~~
[/code]
2021-09-07 (화) 17:38:05
회원 한명당 하나만 불러온다는게 무슨 말인지 모르겠습니다.
기간내에 모든 게시글을 검색해서... 같은 id값을 검색해서 순위를 메기기 때문에...
wr_12값은 해당 회원이 구입한 구입 물품입니다.
wr_31은 wr_12값을 모두 더한 값이고.. 그 금액으로 순위를 매기고 있습니다.
기간내에 모든 게시글을 검색해서... 같은 id값을 검색해서 순위를 메기기 때문에...
wr_12값은 해당 회원이 구입한 구입 물품입니다.
wr_31은 wr_12값을 모두 더한 값이고.. 그 금액으로 순위를 매기고 있습니다.
2021-09-07 (화) 18:41:59
채택을 못드려 죄송합니다
원하는 답을 다른분께서 다셔서....
정성어린 답글 정말 감사합니다
원하는 답을 다른분께서 다셔서....
정성어린 답글 정말 감사합니다
답변을 작성하려면 로그인이 필요합니다.
계속 테스트중인데.. 카운트도 맞고, 금액도 맞고.. 다 맞는데
wr_12값을 모두 못가져 옵니다.