mysql 쿼리를 돌려 나온값을 for 반복하여 또 쿼리를 했을때 정렬방법
본문
제가 임의대로 조합하여 짠 소스라
mysql 쿼리를 돌려 나온값에 반복하여 또 쿼리를 돌렸습니다.
결과는 당연히 나오는데 결과값 정렬에서 문제가 있네요..
고수님들에게 아래 2가지 문제를 여쭈어봅니다.
1. 정렬방식 문제
2. 좀더 깔끔한 소스
<?
$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
제가 직접 돌려서 테스트를 할수가 없어서 쿼리는 이렇게 바꿔서 돌려보시죠.
<?
$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>';
}
}
?>
답변을 작성하시기 전에 로그인 해주세요.