이전 목록 다음
채택완료

sql 질문 입니다.

안녕하세요

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 포인트

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

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

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

답변에 대한 댓글 3개

안녕하세요! 답변 감사드립니다! 다음부턴 줄맞춤 신경쓸게요!
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
이렇게 수정해서 한번 해보시면 ㅎㅎ
선생님!! 너무감사드려요 ㅠ.ㅠ!!!
끙끙앓고 있었는데... 덕분에 해결되었습니다...!!
열심히 공부해야겠어요 ㅜㅜ.
정말 다시한번 감사드립니다!!
좋은하루 되세요^^7

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개

선생님 정말 감사드립니다!!
오늘 하루도 좋은 하루 되셔요!! 감사드립니다^^7

답변을 작성하려면 로그인이 필요합니다.