··조회 12,689
오랜만에 질문드립니다.
야구 기록실로 계속 질문드린사람입니다.
다름이 아니라 규정타석과 관련된질문인데요.
규정타석은 해당팀의 경기수x2.5 이구요
테이블은 타자기록테이블에 경기수가 입력되지 않아서 투수기록테이블에서 각팀의 경기수를 얻어왔습니다.
record_batter =>타자기록테이블이구요
record_pitcher => 투수기록테이블입니다.
record_batter 에 경기수가 입력이 되지 않습니다. 그래서 record_pitcher 테이블에서 각팀의 누적 승, 패, 무승부의 합 x 2.5로 규정타석수를 얻어 왔습니다.
abi 필드가 타석수입니다. s_abi는 누적타석수입니다.
타자 기록 쿼리문이구요.
$query="select league,team,name, sum(abi) as s_abi,중략 from record_batter 중략 GROUP BY name,team1,league limit $offset, list_num"; $result=mysql_query($query) or die (mysql_error());
리스트로 뿌려줄때
<?
while ($array=mysql_fetch_array($result)) {
$date=date("Y/m/d", $array[writetime]);
//규정타석 수 뽑아오기
$b_query = "select round((sum(win)+sum(lose)+sum(samsam))*2.5,1) as abi_ok from record_pitcher where team1='$array[team1]' GROUP BY team1,league "; // SQL 쿼리문
$b_result = mysql_query($b_query) or die (mysql_error());
$b_array=mysql_fetch_array($b_result);// 쿼리문을 실행 결과
if ($array[s_abi]>=$b_array[abi_ok]) {$abi_ok='*';}
else {$abi_ok='';} //타자기록의 누적타석이 규정타석수 이상이면 * 로 표시
//규정타석 정의 끝
echo "
<tr class=zv3_listBox>
<td>$abi_ok</td>
<td>$array[name]</td>
<td>$array[team1]</td>
<td>$array[s_hra]</td>
<td>$array[s_abi]</td>
중략..............
</tr>";
$cur_num --;
}
?>
이러케 해서 규정타석이 넘는 사람은 이름옆에 "*" 표시를 붙였습니다.
서두가 넘길었는데요.. 질문드리고 싶은 내용은
먼저 규정타석이 넘는 사람을 우선정렬하고 싶어 그럽니다.
현재는 규정타석에 상관없이 타율순으로 정렬을 시켰는데,
다른테이블에서 불러온 값을가지고 정렬 우선순위를 줄수 있는지,
어떤 방법을 써야 하는지요.
만약 방법이 없다면요.
타자 기록에서 게임수을 얻어와야 하는데, 각팀별로 날짜가 다른 게시물의 갯수가 게임수가 됩니다.
예를들어
record_batter의 테이블구조
====================================================================
date team no(타순) name(이름) abi(타석) hit(안타) .....
====================================================================
05/05 A 1 강호동 4 3
05/05 A 2 홍길동 5 2
05/05 A 3 김재동 5 4
05/05 A 4 유재석 3 1
.
.
.
05/12 A 1 강호동 4 3
05/12 A 2 홍길동 4 2
05/12 A 3 김재동 3 1
05/12 A 4 유재석 3 3
.
.
.
이런식으로 경기당 선수의 기록이 입력이 됩니다.
여기서 A팀이 규정타석을 구하려면 어케 해야 할런지요.
A팀의 date 값이 각각 다른 리스트 갯수의 합을 구해야 하는거 같은데요..
뭐리문안에서 구해질런지요. 팀값은 B,C,D...... 로 많거든요.
장문의 질문이 되어 버렸습니다.
항상 혼자 고민끝에 질문을 드리고 명쾌하게 풀어주셔서 감사드립니다.
꾸벅~~ 이번에도 부탁드립니다.
다름이 아니라 규정타석과 관련된질문인데요.
규정타석은 해당팀의 경기수x2.5 이구요
테이블은 타자기록테이블에 경기수가 입력되지 않아서 투수기록테이블에서 각팀의 경기수를 얻어왔습니다.
record_batter =>타자기록테이블이구요
record_pitcher => 투수기록테이블입니다.
record_batter 에 경기수가 입력이 되지 않습니다. 그래서 record_pitcher 테이블에서 각팀의 누적 승, 패, 무승부의 합 x 2.5로 규정타석수를 얻어 왔습니다.
abi 필드가 타석수입니다. s_abi는 누적타석수입니다.
타자 기록 쿼리문이구요.
$query="select league,team,name, sum(abi) as s_abi,중략 from record_batter 중략 GROUP BY name,team1,league limit $offset, list_num"; $result=mysql_query($query) or die (mysql_error());
리스트로 뿌려줄때
<?
while ($array=mysql_fetch_array($result)) {
$date=date("Y/m/d", $array[writetime]);
//규정타석 수 뽑아오기
$b_query = "select round((sum(win)+sum(lose)+sum(samsam))*2.5,1) as abi_ok from record_pitcher where team1='$array[team1]' GROUP BY team1,league "; // SQL 쿼리문
$b_result = mysql_query($b_query) or die (mysql_error());
$b_array=mysql_fetch_array($b_result);// 쿼리문을 실행 결과
if ($array[s_abi]>=$b_array[abi_ok]) {$abi_ok='*';}
else {$abi_ok='';} //타자기록의 누적타석이 규정타석수 이상이면 * 로 표시
//규정타석 정의 끝
echo "
<tr class=zv3_listBox>
<td>$abi_ok</td>
<td>$array[name]</td>
<td>$array[team1]</td>
<td>$array[s_hra]</td>
<td>$array[s_abi]</td>
중략..............
</tr>";
$cur_num --;
}
?>
이러케 해서 규정타석이 넘는 사람은 이름옆에 "*" 표시를 붙였습니다.
서두가 넘길었는데요.. 질문드리고 싶은 내용은
먼저 규정타석이 넘는 사람을 우선정렬하고 싶어 그럽니다.
현재는 규정타석에 상관없이 타율순으로 정렬을 시켰는데,
다른테이블에서 불러온 값을가지고 정렬 우선순위를 줄수 있는지,
어떤 방법을 써야 하는지요.
만약 방법이 없다면요.
타자 기록에서 게임수을 얻어와야 하는데, 각팀별로 날짜가 다른 게시물의 갯수가 게임수가 됩니다.
예를들어
record_batter의 테이블구조
====================================================================
date team no(타순) name(이름) abi(타석) hit(안타) .....
====================================================================
05/05 A 1 강호동 4 3
05/05 A 2 홍길동 5 2
05/05 A 3 김재동 5 4
05/05 A 4 유재석 3 1
.
.
.
05/12 A 1 강호동 4 3
05/12 A 2 홍길동 4 2
05/12 A 3 김재동 3 1
05/12 A 4 유재석 3 3
.
.
.
이런식으로 경기당 선수의 기록이 입력이 됩니다.
여기서 A팀이 규정타석을 구하려면 어케 해야 할런지요.
A팀의 date 값이 각각 다른 리스트 갯수의 합을 구해야 하는거 같은데요..
뭐리문안에서 구해질런지요. 팀값은 B,C,D...... 로 많거든요.
장문의 질문이 되어 버렸습니다.
항상 혼자 고민끝에 질문을 드리고 명쾌하게 풀어주셔서 감사드립니다.
꾸벅~~ 이번에도 부탁드립니다.
댓글 1
http://www.yagootj.com/record_batter/list_batter.php?league=4