테스트 사이트 - 개발 중인 베타 버전입니다

sql 정렬 질문 채택완료

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

 

</p>

<p><?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);</p>

<p>                        {

                        ?>

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

                        <? } ?></p>

<p>

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

답변 5개

채택된 답변
+20 포인트
</strong><code>                  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);
                        {</code></pre>

<p><strong>

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

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

 

로그인 후 평가할 수 있습니다

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

다른것은 다 괜찮은데

한가지가 누락되서 그래요

 

 </p>

<pre>
<code>$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 ";</code></pre>

<p><code>

이 문장에서

it_id가 누락되었네요

</span></font></p>

<p> </p>

<pre>
<code>$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 ";</code></pre>

<p><code>

만 하시고 다시 해보세요

로그인 후 평가할 수 있습니다

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

$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가 필요없습니다.

로그인 후 평가할 수 있습니다

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

</p>

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

<? } ?></p>

<p>

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

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

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

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

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

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

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

로그인 후 평가할 수 있습니다

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

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

로그인

전체 질문 목록

🐛 버그신고