php if 문 - 문의

php if 문 - 문의

QA

SIR 제작의뢰 - 견적무료/익명보정/호스팅, DB 이전/단기개발. 이젠 ' 의뢰인'이 원하는 '제작자'에게만 연락처를 알릴 수 있습니다.

php if 문 - 문의

본문

be3f7724d90c8709ebcfa443e97f85ea_1473587273_6209.png
 

위 참조그림에서 총평균점수 85/100 일때 :  

<h2>총 평균점수 : 	          <?php if($review_count==0) {
								echo '0';
							} else {
								echo floor($total_value/($review_count*$use_count)/$max_point*100);
							} ?> / 100점</h2>

 

판정 : 현재 임시로 해당항목 (80점 이상) = echo "<input type='radio' checked>"; 

평균점수가 (70~79), (52~69) (51점 이하) = echo "<input type='radio'>"; 로 적용되었습니다.

 

관련사이트 링크 : 패스워드 : 1004 

고수님, 현재는 급조된 무식한 초짜코드이오니 아래 소스 검토/자문 부탁드립니다.

 

<table width="100%" border="1" cellspacing="2" cellpadding="2" align="center">
  <tr>
    <td width="60" height="64" rowspan="2" style="font-size:11pt;font-weight:bold;color:#FFFF00;line-height:15px;background:#C4DDF4;background: url('../img/verdict.png') no-repeat scroll 0px 0px transparent; overflow: hidden;"></td>
 
    <td width="80" align="center">게제가<br />(80점 이상)</td>
    <td width="30" align="center">
	      <?php if($review_count<=80) {
			   echo "<input type='radio' checked>";
			}
		  else if ($review_count>80) { 
               echo "<input type='radio'>";
		  }
			else {
			   echo floor($total_value>($review_count*$use_count)/$max_point*100);
			} ?> </td>
 
    <td width="112" align="center">수정후 재심사 없이<br />게재 (70-79점)</td>
    <td width="30" align="center">
	       <?php if($review_count<=79) {
			   echo "<input type='radio'>";
			} 
			else if ($review_count>79) { 
               echo "<input type='radio' checked>";
		  }
			else {
			   echo floor($total_value>($review_count*$use_count)/$max_point*100);
			} ?> </td>
 
    <td width="120" align="center">수정후 재심사해서<br />게재여부 결정 (52-69점)</td>
    <td width="30" align="center">
	        <?php if($review_count<=69) {
			   echo "<input type='radio' >";
			} 
			else if ($review_count>69) { 
               echo "<input type='radio' checked>";
		  }
			else {
			   echo floor($total_value>($review_count*$use_count)/$max_point*100);
			} ?> </td>
 
    <td width="80" align="center">게재 불가<br />(51점이하)</td>
    <td width="30" align="center">
	        <?php if($review_count<=51) {
			   echo "<input type='radio'>";
			} 
			else if ($review_count>51) { 
               echo "<input type='radio' checked>";
		   }
			else {
			   echo floor($total_value>($review_count*$use_count)/$max_point*100);
			} ?> </td>
  </tr>
 
  <tr>
    <td colspan="2" align="center">저자 판단에 의해 <br />수정 후 게재</td>
    <td colspan="2" align="center">편집위원의 <br />확인 후 게재</td>
    <td colspan="2" align="center">저자의 심사답변서 <br />접수 후 재심사</td>
    <td colspan="2" align="center">현 연구내용으로는 <br />게재 불가</td>
  </tr>
</table>

 

 

이 글을 내 페이스북 계정으로 보내기 이 글을 내 트위터 계정으로 보내기 이 글을 내 구글플러스 계정으로 보내기

이 질문에 댓글 쓰기 :

답변 2

채택됨

선우善友님의 답변

"위 참조그림에서 총평균점수 85/100 일때 :" <-- 이 내용으로 보아 추측하건데,

계산된 점수(? / 100점)는

"echo floor($total_value/($review_count*$use_count)/$max_point*100); " <-- 이부분인 거 같은데...

점수 비교 조건은 왜 $review_count로 하는지 모르겠군요...


일단 인풋 라디오 타입에 체크를 하려면 아래처럼 해보세요.

"INBEST" 님이 제시한 소스를 토대로 점수 비교조건의 기준값 변수가 $review_count 라고 가정하면

<?php
$floor = floor($total_value/($review_count*$use_count)/($max_point*100));
?>
<table width="100%" border="1" cellspacing="2" cellpadding="2" align="center">
  <tr>
    <td width="60" height="64" rowspan="2" style="font-size:11pt;font-weight:bold;color:#FFFF00;line-height:15px;background:#C4DDF4;background: url('../img/verdict.png') no-repeat scroll 0px 0px transparent; overflow: hidden;"></td>
    <td width="80" align="center">게제가<br />(80점 이상)</td>
    <td width="30" align="center">
       <?php if($review_count>=80) {
      echo '<input type="radio"'.($review_count>=80 ? " checked":"").'>';
    } else {
      echo $floor;
    } ?>
 </td>
    <td width="112" align="center">수정후 재심사 없이<br />게재 (70-79점)</td>
    <td width="30" align="center">
       <?php if($review_count<80 && $review_count>=70) {
      echo '<input type="radio"'.($review_count<80 && $review_count>=70 ? " checked":"").'>';
    } else {
      echo $floor;
    } ?>
 </td>
    <td width="120" align="center">수정후 재심사해서<br />게재여부 결정 (52-69점)</td>
    <td width="30" align="center">
       <?php if($review_count<70 && $review_count>=52) {
      echo '<input type="radio"'.($review_count<70 && $review_count>=52 ? " checked":"").'>';
    } else {
      echo $floor;
    } ?>
 </td>
    <td width="80" align="center">게재 불가<br />(51점이하)</td>
    <td width="30" align="center">
       <?php if($review_count<52) {
      echo '<input type="radio"'.($review_count<52 ? " checked":"").'>';
    } else {
      echo $floor;
    } ?>
 </td>
  </tr>
  <tr>
    <td colspan="2" align="center">저자 판단에 의해 <br />수정 후 게재</td>
    <td colspan="2" align="center">편집위원의 <br />확인 후 게재</td>
    <td colspan="2" align="center">저자의 심사답변서 <br />접수 후 재심사</td>
    <td colspan="2" align="center">현 연구내용으로는 <br />게재 불가</td>
  </tr>
</table>

 

주소복사
채택됨
답변의 댓글
INBEST님의 댓글
좋은 친구님,

위 관련링크사이트를 알려주신 소스로 변경하여 올렸습니다.  패스워드 : 1004
http://igv.kr/bbs/board.php?bo_table=thesis_exam&wr_id=49

직접 만든게 아니고, 짜깁기 이다보니 설명이 요령부득 입니다.

총점수 대비 / 판정 : 현재총평균점수 : 86 기준한다면
 
해당항목 (80점 이상) = checked 나와야 되고
평균점수가 (70~79), (52~69) (51점 이하) = echo "<input type='radio'>"; 되어야 하는데요.

참조가 될까요 : 아래는 원소스에 있는

<?php
    $is_duple = false;
$total_value = 0;
$max_point = $board['bo_2'];
        $review_count = count($list);
$use_count = 0;
$review_array = array(
'wr_3' => 0,
'wr_4' => 0,
'wr_5' => 0,
'wr_6' => 0,
'wr_7' => 0,
'wr_8' => 0,
'wr_9' => 0,
'wr_10' => 0,
);

    for ($i=0; $i<$review_count; $i++) {
for ($j=3; $j<11; $j++) {
$review_array['wr_'.$j] += $list[$i]['wr_'.$j];
$total_value += $list[$i]['wr_'.$j];
if(!$is_duple && $list[$i]['is_edit']){
$is_duple = true;
}
}
    }
?>

관심 + 성의에 감사드립니다 !!!!
선우善友님의 댓글
좀 이해가 안 가는 군요?

$review_count = count($list); 라면
$review_count 의 변수 값은 목록의 갯수를 의미하는 것인데...
"INBEST" 님이 제시한 소스를 보면 $review_count 이 해당 항목의 점수인 것처럼 if문에서 비교를 하고 있습니다.

http://igv.kr/bbs/board.php?bo_table=thesis_exam&wr_id=40 이 링크를 보면
목록 1번의 페이지에서 점수가 77점이고, 목록 2번의 페이지 점수가 86점으로 나오는데,
이 점수가 나오는 계산식을 알아야 조건 비교를 할 수 있을 것 같습니다.
만약에 해당 항목의 점수를 아래처럼 $floor 변수에 저장하다면
$floor = floor($total_value/($review_count*$use_count)/($max_point*100));

//$floor 의 값이 77, 86 처럼 된다면 아래와 같이 해볼 수 있습니다.
<table width="100%" border="1" cellspacing="2" cellpadding="2" align="center">
  <tr>
    <td width="60" height="64" rowspan="2" style="font-size:11pt;font-weight:bold;color:#FFFF00;line-height:15px;background:#C4DDF4;background: url('../img/verdict.png') no-repeat scroll 0px 0px transparent; overflow: hidden;"></td>

    <td width="80" align="center">게제가<br />(80점 이상)</td>
    <td width="30" align="center">
	      <input type="radio"<?php echo ($floor>=80 ? " checked":"");?>>
	</td>

    <td width="112" align="center">수정후 재심사 없이<br />게재 (70-79점)</td>
    <td width="30" align="center">
	      <input type="radio"<?php echo ($floor<80 && $floor>=70 ? " checked":"");?>>
	</td>

    <td width="120" align="center">수정후 재심사해서<br />게재여부 결정 (52-69점)</td>
    <td width="30" align="center">
	      <input type="radio"<?php echo ($floor<70 && $floor>=52 ? " checked":"");?>>
	</td>

    <td width="80" align="center">게재 불가<br />(51점이하)</td>
    <td width="30" align="center">
	      <input type="radio"<?php echo ($floor<52 ? " checked":"");?>>
	</td>
  </tr>

  <tr>
    <td colspan="2" align="center">저자 판단에 의해 <br />수정 후 게재</td>
    <td colspan="2" align="center">편집위원의 <br />확인 후 게재</td>
    <td colspan="2" align="center">저자의 심사답변서 <br />접수 후 재심사</td>
    <td colspan="2" align="center">현 연구내용으로는 <br />게재 불가</td>
  </tr>
</table>
INBEST님의 댓글
너무 무리하게 부탁을 하는 것 아닌지요 !!??
제작의뢰에 맡기는 사안인것 같습니다.
마무리 하고 인사드리겠습니다.

감사 !! 좋은 하루되시길...

1. 추가로 새글을 써서 테스트 해보면 판정점수에 따른 선택이 맞지않는 문제가 ...
2. 일반회원 글쓰기에 나타나는 에러 ㅠ,ㅠ, 관리자 심사후에는 사라지네요 ??
Warning: Division by zero in /home/igv/public_html/skin/board/thesis_process-rev/view_comment.skin.php on line 89
on line 89 소스 =  $floor = floor($total_value/($review_count*$use_count)/($max_point*100));
3. 게시판 스킨 원본 : http://sir.kr/g5_skin/10304?sfl=mb_id%2C1&stx=ghost214
4. 내가 수정한 소스는 완전 무시하고 살펴봐 주세요 ^^!

관련파일[view_comment.skin.php] - 글등록수를 초과하여 이메일로 보내드렸습니다
INBEST님의 댓글
선우님, 덕분에 해결 + 감사 !!!

아래 질의사항입니다

1. 판정및평가사항 / 평가 을 현재 8 항목에서 => 10 항목으로 늘이려고면 ... !!??

  * 현재 wr_11, wr_12 여분필드가 추가되어 있습니다.

2. 평점선택에 1. 1.5  2  2.5  ... 선택하게 되어 있는데,
  * 1. 2. 3. ... 으로 하면 프로그램에서 문제가 되는지요 !!??
  * 심사의견이 3건이상일때 = 소수점이하 : 5.33333333333 까지 나오는데 3단위나 4단위에서 컷오프 시킬수 있는지요 ...

좋은 저녁되시길...
선우善友님의 댓글
* 1. 2. 3. ... 으로 하면 프로그램에서 문제가 되는지요 !!??
==> 제 개인의견으로는 문제될 것이 없어 보입니다.

* 심사의견이 3건이상일때 = 소수점이하 : 5.33333333333 까지 나오는데 3단위나 4단위에서 컷오프 시킬수 있는지요 ...
==> 반올림 함수를 이용하면 될 것같습니다.
$str = '5.33333333333';
echo round($str, 3); //결과 5.333
echo round($str, 4); //결과 5.3333
INBEST님의 댓글
선우님,

어제 단체 임원들과 만나서 행당항목 [논문투고/심사]에 필요한 구성과 기본작동에 관련하여
의논 한바 내 능력이 미치지 못하는 추가되는 기능은 학교에 관련학과에 의뢰하기로...

내가 이 단체의 임원으로 관련되어 있어
나름, 능력한도 내에서 최선을 다했고... 선우님, 덕분에 면피를 했습니다 ^^!

이제 가을도 깊어가고, 몸과 마음이 풍요로운 살이가 되시길....
감사 !!!!!!
답변을 작성하시기 전에 로그인 해주세요.
전체 16
고마운 분의 도움으로 질문을 해결하셨다면, 채택을 눌러서 감사의 마음을 전하세요.
어떻게 질문해야 할지 모른다면 질문하는 방법을 읽어 보신후 질문해 보세요.
QA 내용 검색

회원로그인

진행중 포인트경매

  1. 스타벅스 e-Gift Card (100,000원)

    참여121 회 시작19.08.16 09:15 종료19.08.23 21:15

(주)에스아이알소프트 (06253) 서울특별시 강남구 도곡로1길 14, 6층 624호 (역삼동, 삼일프라자) 대표메일:admin@sir.kr
사업자등록번호:217-81-36347 대표:홍석명 통신판매업신고번호:2014-서울강남-02098호 개인정보보호책임자:이총

© SIRSOFT