채택완료

mysql 쿼리를 돌려 나온값을 for 반복하여 또 쿼리를 했을때 정렬방법

2016-04-23 (토) 14:48:43 6,920

제가 임의대로 조합하여 짠 소스라

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개

2016-04-23 (토) 15:43:22
원하는데로 구현됐네요.한수 배워갑니다.^^
고맙습니다. 진심을 담아 감사인사 드리고, 주말 즐겁게 보내세요~

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