2014-04-01 3 views
0

나는 간단한 쿼리psudo 열을 사용하여 주문하는 방법은 무엇입니까?

$query = SELECT * FROM 'tablename'; 

내가 쿼리를 가지고 while 루프

$id = $row['id']; 
$player = $row['player']; 
$club = $row['club']; 
$games = $row['games']; 
$goals = $row['goals']; 
$points = $row['points']; 

if($points == 2){$cooef = "2";} 
elseif($points == 1){$cooef = "1.5";} 

    $pointsf = $games == 0 ? 0 : ($cooef*$goals); 

     $showesm .= " 
     <div style='$style' class='position'>" . $count . "</div> 
     <div style='$style' class='recordplayer'>" . $player . "</div> 
     <div style='$style' class='playerclub'>" . $club . "</div> 
     <div style='$style' class='position'>" . $games . "</div> 
     <div style='$style' class='position'>" . $goals . "</div> 
     <div style='$style' class='position'>" . $pointsf . "pts</div> 
      "; 
} 

나는 결과 출력이 $pointsf 열을 기준으로 주문하려는 통해 그것을 넣어 있습니다. PHP 나 MYSQL에서도 가능합니까?

+1

가능한 [MySQL 정렬 계산] (http://stackoverflow.com/questions/2369624/mysql-sort-on-a-calculation) – jeroen

+1

points가 1과 같지 않은 경우 $ cooef의 값은 얼마입니까? 또는 2? – mesutozer

+0

0을 사용했던 원래의 코드를 흉내 내려면 (정의되지 않았고 경고를 던집니다) 쿼리에 여분의 IF()를 추가해야합니다. 내 대답은 아래를 참조하십시오. –

답변

4

해당하여 쿼리 및 위해 pointsf을 계산할 수 있습니다 사용 :-) 물론

$query = "SELECT *, IF(games=0,0,IF(points = 2, 2*goals, 1.5*goals)) AS pointsf 
      FROM 'tablename' ORDER BY pointsf" 
+0

포인트가 1.5가 아닌 2가 아닌 경우는 어떻게됩니까? 이전 코드는 0을 사용했을 것입니다 (경고를 던집니다). –

+0

나는 답변을 게시 한 후, 이제는 @Aasim Azam에게 어떤 행동을해야하는지 깨달았습니다. – mesutozer

+0

그 숫자는 두 개 뿐이며, 데이터베이스와 곱셈 모두에 0이 없음을 의미합니다. –

0

:

$query = SELECT * FROM 'tablename' ORDER BY IF(games = 0, 0, goals * IF(points = 2, 2, IF(points = 1, 1.5, 0))); 

은 아마도 $ cooef이 0 $ 포인트는 1 또는 2

하지 않을 때
관련 문제