ITmembers.net 아카이브 · 2002–2009

질문과 답변

오랜만에 질문드립니다.

야구기록실 관련해서 여러가지 질문드렸던 사람입니다.
손병목님과 두리뭉실님 덕분에 성공했습니다.^.^ 지금 칭찬이 자자합니다.
잘만들었다고요.. 감사드립니다.

기록정렬과 관련되어서 질문이 있어서 글을 남깁니다.

http://www.yagootj.com/record_batter/list_batter.php

질문1. 누적타율계산시 소수점 3자리까지 표시하려면...========================================
ab->타수 hit->안타

$query="select sum(ab) as s_ab,sum(hit) as s_hit,sum(hit)/sum(ab) as s_hra from $tablename  ".$que_league." ".$and." ".$que_team1." GROUP BY name,team1,league order by $select_arrange_s $desc limit $offset, $list_num";

이러케하니까 s_hra값이 소수점 두자리값으로 정해져 버리더라구요.
$s_hra = (number_format($array[s_hra],3));
이변수를 추가해도 세자리소수점은 0으로표시가됩니다.

그래서 sum(hit)/sum(ab) as s_hra을 없애고
$s_hra = (number_format($array[s_hit]/$array[s_ab],3)); 를 넣으면
소수점 3자리까지 정상표시되긴하는데, s_hit하고 s_ab값이 0 인 선수는

Warning: Division by zero in /home/triple/yagootj/record_batter/list_batter.php on line 339

이런식으로 계산오류라고 뜨더군요.
계산오류도 안뜨게 하고 소수점 3자리까지 표시되게 하는방법이 없을까요?

질문2.-==================================================================================
기록을 s_hra 에 의해 정렬시켰는데, s_ab 값과 s_hit값이 0인 선수가 최상위로 정렬이 되더군요. 아마 0/0 이면 무한대가 표시되서 그런거 같은데 해결방법은 없는지요.

질문3. 정렬순서의 복수지정..===============================================================
현재 초기정렬값이  s_hra입니다. 이때 s_hra 값이 같은 두선수가 있을땐 s_hit값이 더큰 선수를 상위 정렬시키고자 합니다.

즉.-----s_ab    s_hit    s_hra
강호동   12         6        0.500
유재석   10         5        0.500

s_hra값이 같으면 s_hit값이 큰선수를 상위정렬시키려고합니다.
  
질문4. 규정타수 우선정렬===================================================================
3번질문과 비슷한 내용이 될것 같은데요.
s_ab값이 정해진 숫자(규정타수-변수처리) 이상인 선수를 우선적으로 정렬한다음, 정해진숫자이하인 선수를 그이하로 정렬하는방법은 없는지요.

질문5. 순위 매기기=========================================================================
이건 제가 해봐서 순위매기기는 가능했는데.. 순서대로 그냥 주욱---1,2,3,4,---이러케 됬습니다.
이러케 변수처리 했거든요
$no=0;
$no=$no+1;

http://www.yagootj.com/record_result/list_rank.php?league=4

승률에 의해 정렬시키로 그에 따라 순위를 부여했는데요.

승률이 같으면 같은순위가 표시되게 하려고 합니다.

순위   팀     승률 ----
1       A      1.000
1       B      1.000
1       C      1.000
4       D       0.900      
4       E       0.900
6       F        0.800

이런식으로 표현되게 하려고 합니다.
어떻게 해야 할런지요..
=========================================================================================
오늘 너무 많은 질문을 드렸네요.. 그동안 혼자서 끙끙대다가 너무 안풀려서 도움을 구합니다. ^.^
항상 친절한 답변 감사드립니다 꾸벅

댓글 6