정렬 문제 다시 질문 드려요~

정렬 문제 다시 질문 드려요~

QA

정렬 문제 다시 질문 드려요~

본문


<?php
    $year = date("Y",time());
        $temp_board = 'client';//게시판 이름
        $sql = "select * from g5_write_$temp_board  ";
        $result = sql_query($sql);
        $subject_arr = array();
        for($x=0; $row = sql_fetch_array($result); $x++){
            $subject_arr[$x] = $row;
        }
        $rowsum = sql_fetch("select sum(wr_3) as sum_in from `g5_write_kucun`  where  mb_id='xiaoshou' and Year(wr_4) = '$year' ");
        $sum_total_all = $rowsum['sum_in'];
        $all_zong = number_format($sum_total_all);
    ?>

<div class="kc_row_2">
  <ul>
    <?php for($x=0; $x<count($subject_arr); $x++){?>
      <?php
        $item_list = $subject_arr[$x]['wr_subject'];
        $rowsum = sql_fetch("select sum(wr_3) as sum_in from `g5_write_kucun`  where  mb_id='xiaoshou' and Year(wr_4) = '$year' ");
        $sum_total_all = $rowsum['sum_in'];
        $all_zong = number_format($sum_total_all);
        $rowsum_c = sql_fetch("select sum(wr_3) as sum_in from `g5_write_kucun`  where  wr_subject='$item_list' and mb_id='xiaoshou' and Year(wr_4) = '$year' order by sum_in asc");
        $sum_total_c = $rowsum_c['sum_in'];
        if($sum_total_c){
        $ea_zong = number_format(str_replace("-","","$sum_total_c"));
          }
      ?>
   
        <li>
          <div class="kc_title_2">
            <div class="title"><?php echo $subject_arr[$x]['wr_subject'] ?></div>
                <div class="kc_data_2">
                  <?php
                    echo '  <span class="sl_zong">¥ '.$ea_zong.'</span>';
                    $pingjun = number_format($sum_total_c / $sum_total_all , 4)*100;
                    echo '<span class="sl_ping">'.$pingjun.'%</span><br>';
                  ?>
                </div>
              </div>
          </li>
 
    <?php }?>

  </ul>
  </div>
  
 

 

짜집기 해서 아래와 같이 구현을 했는데요...

986878590_1614929184.5578.jpg

정렬을 큰숫자부터 할려고 하는데 array, order by  해보고 하는데 도저히 안나오네요...

이론으론 숫자크기대로 다른게시판에서 불러오는 네임순서를 바꾸고 네임에 매치되는 금액이 표시되게 하는겁니다. 

짜집기의 한계인거 같습니다. 

 

감사합니다. 

이 질문에 댓글 쓰기 :

답변 1


<?php
$year = date("Y");
 
$rowsum = sql_fetch("select sum(wr_3) as sum_in from `g5_write_kucun`  where  mb_id='xiaoshou' and Year(wr_4) = '$year' ");
$sum_total_all = $rowsum['sum_in'];
 
$sql = "
  select wr_subject, sum(wr_3) as sum_in
    from g5_write_kucun
   where mb_id = 'xiaoshou'
     and Year(wr_4) = '$year'
   group by wr_subject
   order by sum_in desc
";
$result = sql_query($sql);
?>
<div class="kc_row_2">
  <ul>
    <?php for($i = 0; $row = sql_fetch_array($result) ; $i++){
       $ea_zong = number_format(str_replace("-", "", $row['sum_in']));
       $pingjun = number_format($row['sum_in'] / $sum_total_all , 4) * 100;
    ?>
    <li>
      <div class="kc_title_2">
        <div class="title"><?php echo $row['wr_subject'] ?></div>
        <div class="kc_data_2">
          <?php
            echo '  <span class="sl_zong">¥ '.$ea_zong.'</span>';
            echo '<span class="sl_ping">'.$pingjun.'%</span><br>';
          ?>
        </div>
      </div>
    </li>
    <?php }?>
  </ul>
</div>

그 부분은 꽤나 어렵습니다.

임시방편의 방법으로는 DB 테이블 g5_write_kucun 의 각 연도에 없는 회사의 데이터를 수동으로 넣어주는 (wr_3 데이터는 '0'으로..) 방법이 있습니다.

or

상단의 sql문을 다음으로 변경해볼 수 있습니다. 잘 될지는 모르겠습니다.

$sql = "
select wr_subject,
      (select sum(wr_3) from g5_write_kucun where mb_id='xiaoshou' and Year(wr_4) = '$year' and wr_subject = g5_write_client.wr_subject) as sum_in
  from g5_write_client 
 order by sum_in desc
";

답변을 작성하시기 전에 로그인 해주세요.
전체 123,732 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT