채택완료

sql 정렬 질문

이렇게 하면 합계금액이 많은 순으로 정렬돠면서 5개가 나와야 하는데 왜 1개만 나올까요?

 

Copy
<?php 
                        $sql  = " select SUM(it_qty) as it_qty_sum from `g5_shop_trading_sell` group by it_id order by it_qty_sum desc limit 5 ";
                        $result_rank = sql_query($sql);
                        for ($i=0; $row=sql_fetch_array($result_rank); $i++)
                            
                            $sql2 = "select * from `g5_shop_item` where it_id = '".$row['it_id']."' ";
                            $result2 = sql_fetch($sql2);

                        {
                        ?>
                        <li>
                            <div class="num"><span><?php echo $i ?></span></div>
                            <div class="thumbnail">
                                <?php echo get_it_image($result2['it_id'], 100, 100); ?>
                            </div>
                            <div class="memo">
                                <p class="subject"><?php echo $result2['it_name'] ?></p>
                                <div class="info">
                                    <div class="tit">조각 당 현재가</div>
                                    <div class="price">1,800원</div>
                                    <div class="priceUpdown">▲ 800원(80.0%)</div>
                                </div>
                                <div class="info">
                                    <div class="tit">작품 제시가</div>
                                    <div class="price">1,800원</div>
                                </div>
                            </div>
                        </li>
                        <? } ?>
|

답변 5개 / 댓글 1개

채택된 답변
+20 포인트
Copy
for ($i=0; $row=sql_fetch_array($result_rank); $i++)
                            
                            $sql2 = "select * from `g5_shop_item` where it_id = '".$row['it_id']."' ";
                            $result2 = sql_fetch($sql2);
                        {

for문이 잘못된거 같은데요  조건문 다음에 중괄호가 열려야 하는데

$sql2 구문 아래에 들어가 버렸습니다

 

다른것은 다 괜찮은데

한가지가 누락되서 그래요

 

Copy
$sql  = " select SUM(it_qty) as it_qty_sum from `g5_shop_trading_sell` group by it_id order by it_qty_sum desc limit 5 ";

이 문장에서

it_id가 누락되었네요

Copy
$sql  = " select it_id, SUM(it_qty) as it_qty_sum from `g5_shop_trading_sell` group by it_id order by it_qty_sum desc limit 5 ";

만 하시고 다시 해보세요

$sql = " select it_id,

-- 추가하시고요

SUM(it_qty) as it_qty_sum from `g5_shop_trading_sell` group by it_id order by it_qty_sum desc limit 5 ";

                        $result_rank = sql_query($sql);

                        for ($i=0; $row=sql_fetch_array($result_rank); $i++)

                            { // 추가

                            $sql2 = "select * from `g5_shop_item` where it_id = '".$row['it_id']."' ";

                            $result2 = sql_fetch($sql2);

                        { // 삭제

                        ?>

 

그리고

query 문을 처음부터

 join으로 처리 하시면

Loop 안에서 추가 query가 필요없습니다.

Copy
<?php 
$sql  = " select SUM(it_qty) as it_qty_sum from `g5_shop_trading_sell` group by it_id order by it_qty_sum desc limit 5 ";
$result_rank = sql_query($sql);
while($row=sql_fetch_array($result_rank)){
    $sql2 = "select * from `g5_shop_item` where it_id = '".$row['it_id']."' ";
    $result2 = sql_fetch($sql2);
?>
<li>
    <div class="num"><span><?php echo $i ?></span></div>
    <div class="thumbnail">
        <?php echo get_it_image($result2['it_id'], 100, 100); ?>
    </div>
    <div class="memo">
        <p class="subject"><?php echo $result2['it_name'] ?></p>
        <div class="info">
            <div class="tit">조각 당 현재가</div>
            <div class="price">1,800원</div>
            <div class="priceUpdown">▲ 800원(80.0%)</div>
        </div>
        <div class="info">
            <div class="tit">작품 제시가</div>
            <div class="price">1,800원</div>
        </div>
    </div>
</li>
<? } ?>

이렇게 사용하시길 권하구요...

sql문은 잘 하신것 같은데...

답변에 대한 댓글 1개

제가 제쪽에서 사용하는 디비에서 대략 테스트를 위해 사용했던 쿼리문은
SELECT SUM(idx) AS sm FROM `lotte_data` group by `manufacturer` order by sm desc limit 5
입니다.

게시판 리스트 보면 $list[$i] 형식 사용하잖아요. 

위 코드 보면 값 형식이 리스트에서 $view 변수 사용하는 것처럼 되어 있네요.

자세한 건 다음 고수분이 알려주실 겁니다. 저는 초보라 자세한 건 몰라요. ㅜㅜ

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