채택완료

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

2021-03-05 (금) 16:32:43 3,782
Copy
<?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개 / 댓글 5개

채택된 답변
+20 포인트
2021-03-05 (금) 16:57:01
Copy
<?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>

답변에 대한 댓글 5개

감사합니다. ~~근데 값이 0 인 회사명이 안나오네요?

천천히 공부를 해야겠습니다.
2021-03-05 (금) 17:12:15
$pingjun = number_format($row['sum_in'] / $sum_total_all , 4) * 100;

으로 수정하였습니다.
말씀하신 내용 짜집기로 넣어서 됬는데 0 인 회사명이 표시가 안됩니다.
즉 이미지에 HZ-SEN NUO 회사명이 표시가 안됫죠...
2021-03-05 (금) 17:22:45
그 부분은 꽤나 어렵습니다.

임시방편의 방법으로는 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
";
해결 되였습니다. 이틀동안 짜집기 했더만 많이 피곤하네요...^^;;
답변 감사드립니다.

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