sql 질문 입니다.

sql 질문 입니다.

QA

sql 질문 입니다.

본문

안녕하세요

sql 질문드립니다.. ㅠㅠ

member(회원정보) 테이블과 point(회원ID와,포인트정보) 테이블이 있을때

화면에 뿌려줄때 for문을 돌려 member 테이블 확 뿌리고 난뒤

point 테이블에 방금 for문 돌린 id와 일치한값의 point를 넣고 싶은데 방법을 잘모르겠어서 질문드립니다.

ㅠ.ㅠ 아래처럼 for문안에 또 for문 넣으면 될줄 알았는데 안되서....

 

-> 첫쿼리를 LEFT JOIN 사용하여 출력해보니 같은 아이디 결과값이 여러개나와

최고관리자 100point 최고관리자 100point 이런식으로 여러개인데

ex) 최고관리자 200point 처럼 이렇게 합산해서 한행으로 보여주고싶을땐 어떤방법이 있는지 궁금합니다.!

 


<?
        $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

안녕하세요 , 포인트 합을 보여주실거면 두번째 for 는 필요없구요, 

2번째 쿼리 안에서 sum() 함수 이용하면 될거같네요~ 

그리고 줄맞춤을 잘 해주시면 더 보기편하고 좋을거같네요~

안녕하세요! 답변 감사드립니다! 다음부턴 줄맞춤 신경쓸게요!
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()함수를 어떻게 활용해야 할지 모르겠어요 ㅠ.ㅠ
최고관리자 포인트합을 한행으로 만들고 싶은데...
조언 부탁드려도 될까요?

줄맞춤 신경쓰라고 지적한건 아니고 줄맞춤 보기좋게 해놓으면 유지보수도 편하고 해서 말씀드린거고 ^^;;
처음 쿼리를
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
이렇게 수정해서 한번 해보시면 ㅎㅎ


<?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,543
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT