sql 정렬 질문
본문
이렇게 하면 합계금액이 많은 순으로 정렬돠면서 5개가 나와야 하는데 왜 1개만 나올까요?
<?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
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 구문 아래에 들어가 버렸습니다
!-->
게시판 리스트 보면 $list[$i] 형식 사용하잖아요.
위 코드 보면 값 형식이 리스트에서 $view 변수 사용하는 것처럼 되어 있네요.
자세한 건 다음 고수분이 알려주실 겁니다. 저는 초보라 자세한 건 몰라요. ㅜㅜ
<?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문은 잘 하신것 같은데...
!-->$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가 필요없습니다.
다른것은 다 괜찮은데
한가지가 누락되서 그래요
$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가 누락되었네요
$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 ";
만 하시고 다시 해보세요
!-->!-->