채택완료
mysql 쿼리를 돌려 나온값을 for 반복하여 또 쿼리를 했을때 정렬방법
제가 임의대로 조합하여 짠 소스라
mysql 쿼리를 돌려 나온값에 반복하여 또 쿼리를 돌렸습니다.
결과는 당연히 나오는데 결과값 정렬에서 문제가 있네요..
고수님들에게 아래 2가지 문제를 여쭈어봅니다.
1. 정렬방식 문제
2. 좀더 깔끔한 소스
Copy
<? $a = $list[$i]['wr_id']; $b = $list[$i]['wr_6']; $query_r = "select * from g5_write_cart where wr_parent=$a and wr_is_comment=1"; $result = sql_query($query_r); $num_results = $result->num_rows; if($num_results > 0){ for ($j=0; $j <$num_results; $j++) { $row = $result->fetch_assoc(); $query_c = "select * from board_set where wr_c='".$row['wr_4']."'"; $row_pc=sql_fetch($query_c); if ($b == $row['wr_6']){ echo '<img src="/cart/icon_check.png">'; } echo $row_pc[no_c].'등'; echo '/'; echo $row_pc[pc_money].'원'; echo '<br>'; } }?>
위 실행시 결과값
1등 / 5,000원
4등 / 2,000원
2등 / 4,000원
3등 / 3,000원
10등 / 500원
20등 / x원
<더 있을수 있음>
제가 원하는 결과값 정렬은 no_c필드명 정렬하고 싶은데
1등 / 5,000원
2등 / 4,000원
3등 / 3,000원
4등 / 2,000원
10등 / 500원
.
.
20등 / x원
$query_r 쿼리를 돌려 나온값에 반복하여 또 쿼리를 돌린 이유가 등록된 갯수에 따라
더 많이 나올수 있는 상황이라..
위 쿼리문에 ORDER BY 'no_c' ASC 를 입력해도 각각 실행되는 쿼리라 정렬이 안되는군요..
고수님의 조언과 좀더 좋은 방법이 있다면 부탁드립니다. 감사합니다.
|
답변 1개 / 댓글 1개
채택된 답변
+20 포인트
제가 직접 돌려서 테스트를 할수가 없어서 쿼리는 이렇게 바꿔서 돌려보시죠.
Copy
<? $a = $list[$i]['wr_id']; $b = $list[$i]['wr_6']; $query_r = "select c.*,bs.no_c,bs.pc_money from g5_write_cart as c left join board_set as bs on bs.wr_c = c.wr_4 where wr_parent=$a and wr_is_comment=1 order by bs.no_c asc"; $result = sql_query($query_r); $num_results = $result->num_rows; if($num_results > 0){ for ($j=0; $j <$num_results; $j++) { $row = $result->fetch_assoc(); if ($b == $row['wr_6']){ echo '<img src="/cart/icon_check.png">'; } echo $row[no_c].'등'; echo '/'; echo $row[pc_money].'원'; echo '<br>'; } }?>
답변에 대한 댓글 1개
실드앤소드1
2016-04-23 (토) 15:43:22
답변을 작성하려면 로그인이 필요합니다.
고맙습니다. 진심을 담아 감사인사 드리고, 주말 즐겁게 보내세요~