안녕하세요
sql 질문드립니다.. ㅠㅠ
member(회원정보) 테이블과 point(회원ID와,포인트정보) 테이블이 있을때
화면에 뿌려줄때 for문을 돌려 member 테이블 확 뿌리고 난뒤
point 테이블에 방금 for문 돌린 id와 일치한값의 point를 넣고 싶은데 방법을 잘모르겠어서 질문드립니다.
ㅠ.ㅠ 아래처럼 for문안에 또 for문 넣으면 될줄 알았는데 안되서....
-> 첫쿼리를 LEFT JOIN 사용하여 출력해보니 같은 아이디 결과값이 여러개나와
최고관리자 100point 최고관리자 100point 이런식으로 여러개인데
ex) 최고관리자 200point 처럼 이렇게 합산해서 한행으로 보여주고싶을땐 어떤방법이 있는지 궁금합니다.!
Copy
<?
$result = sql_query("SELECT * FROM member");
for ($i=0; $row=sql_fetch_array($result); $i++) {
$result02 = sql_query("SELECT * FROM point WHERE mb_id = {$row['mb_id']}");
for($o=0; $row02=sql_fetch_array($result02); $o++){
?>
<tr>
<td class="text-center">
<?= $i+1;?>
</td>
<td class="text-center">
<?= $row["mb_name"];?>
</td>
<td class="text-center">
<?= $row["mb_id"];?>
</td>
<td class="text-center">
<?= $row["mb_level"];?>
</td>
<td class="text-center">
<?= $row02["po_point"];?>
</td>
</tr>
<?php }}
답변 2개 / 댓글 4개
채택된 답변
+20 포인트
4년 전
안녕하세요 , 포인트 합을 보여주실거면 두번째 for 는 필요없구요,
2번째 쿼리 안에서 sum() 함수 이용하면 될거같네요~
그리고 줄맞춤을 잘 해주시면 더 보기편하고 좋을거같네요~
답변에 대한 댓글 3개
kmd2410
4년 전
4년 전
줄맞춤 신경쓰라고 지적한건 아니고 줄맞춤 보기좋게 해놓으면 유지보수도 편하고 해서 말씀드린거고 ^^;;
처음 쿼리를
SELECT SUM(b.po_point) as po_point, a.* FROM pd_member a LEFT pd_point b ON a.mb_id = b.md_id GROUP BY a.mb_id
이렇게 수정해서 한번 해보시면 ㅎㅎ
처음 쿼리를
SELECT SUM(b.po_point) as po_point, a.* FROM pd_member a LEFT pd_point b ON a.mb_id = b.md_id GROUP BY a.mb_id
이렇게 수정해서 한번 해보시면 ㅎㅎ
kmd2410
4년 전
선생님!! 너무감사드려요 ㅠ.ㅠ!!!
끙끙앓고 있었는데... 덕분에 해결되었습니다...!!
열심히 공부해야겠어요 ㅜㅜ.
정말 다시한번 감사드립니다!!
좋은하루 되세요^^7
끙끙앓고 있었는데... 덕분에 해결되었습니다...!!
열심히 공부해야겠어요 ㅜㅜ.
정말 다시한번 감사드립니다!!
좋은하루 되세요^^7
BiHon
4년 전
Copy
<?php
$result = sql_query("SELECT M.mb_name, M.mb_id, M.mb_level, SUM(P.po_point) AS sum_point
FROM member AS M LEFT JOIN point AS P ON M.mb_id=P.mb_id
GROUP BY M.mb_id ORDER BY M.mb_id ASC");
// $total = sql_num_rows($result); // 전체 회원 수
$no = 1;
while ( $row=sql_fetch_array($result) ) {
?>
<tr>
<td class="text-center">
<?=$no++?>
</td>
<td class="text-center">
<?=$row['mb_name']?>
</td>
<td class="text-center">
<?=$row['mb_id']?>
</td>
<td class="text-center">
<?=$row['mb_level']?>
</td>
<td class="text-center">
<?=$row['sum_point']?>
</td>
</tr>
<?php
}
답변에 대한 댓글 1개
답변을 작성하려면 로그인이 필요합니다.
http://kmd2410.dothome.co.kr/test/%EC%BF%BC%EB%A6%AC.png
쿼리를 사용했을때 결과값이
http://kmd2410.dothome.co.kr/test/%ED%85%8C%EC%9D%B4%EB%B8%94.png
이렇게 나오는데 sum()함수를 어떻게 활용해야 할지 모르겠어요 ㅠ.ㅠ
최고관리자 포인트합을 한행으로 만들고 싶은데...
조언 부탁드려도 될까요?