2013-02-02 3 views
1

SQL 데이터베이스에서 가져온 정보에서 테이블을 정렬하는 데 문제가 있습니다. 필자는 PHP 변수 $ points (SQL 데이터베이스에있는 두 개의 다른 필드에서 계산하고 테이블의 마지막 부분으로 인쇄하므로 SQL에 포인트가 포함되지 않음)로 테이블을 정렬해야합니다.PHP에서 변수를 사용하여 SQL에서 테이블을 정렬하는 방법

그래서 기본적으로 포인트에 대한 정보를 SQL 데이터베이스에 직접 저장하지 않고 $ 테이블별로 테이블을 정렬해야합니다.

가능한 경우 가장 간단한 방법은 무엇일까요?

그리고 PHP 코드는 아래 여기에 있습니다 :

if(isset($_REQUEST['button'])) { 
    $connect = mysqli_connect("localhost","root","","Points_database"); 
    if (mysqli_connect_errno()) { 
     echo "Error: ", mysqli_connect_error(); 
     exit(); 
    } 
    $sql = "SELECT * FROM Points_table;"; 
    $query = mysqli_query($connect,$sql); 
    echo "<table><tr><td>Team</td><td>Games</td><td>Wins</td><td>Tie</td><td>Losses</td><td>Goals</td><td>Points</td></tr>"; 
    $rowcount=0; 
    while($row = mysqli_fetch_array($query,MYSQL_ASSOC)) { 
     $rowcount++; 
     $points= $row['wins'] * 3 + $row['tie']; 
     if($rowcount%2==0) { 
      echo "<tr class='rowstyle2'>"; 
     } 
     else { 
      echo "<tr>"; 
     } 
     echo "<td>".$row['team']."</td><td>".$row['games']."</td><td>".$row['wins']."</td><td>".$row['tie']."</td><td>".$row['losses']."</td><td>".$row['goals']."</td><td>".$points."</td></tr>"; 
    } 
    echo "</table>"; 
} 
+1

당신이 PHP에 의해 생성 계수의 값은 무엇인가? –

+0

$ rowcount는 테이블의 다른 모든 행을 색칠하기위한 것입니다. 또는 제가 $ 포인트를 계산하는 방법을 의미한다면 그것은 MS Paint 테이블에 대해 SQL 데이터베이스 – Defain

+1

+1의 승리와 동점을 기반으로합니다. : D – hjpotter92

답변

1

왜? 여기

SELECT * FROM table ORDER BY wins*3 + tie DESC 

SQL

에서

SELECT *, (wins*3 + tie) AS pts FROM table ORDER BY pts DESC 

또는 당신이 해달라고하면 원하는 계산은 다음과 같습니다 http://sqlfiddle.com/#!2/d2045/4

+0

그것은 내가 SQL에 포인트에 대한 데이터를 삽입하지 않는 절대 요구이기 때문에. 내가 할 수 있으면 매우 쉬울 것입니다 :/ – Defain

+0

그리고 문제는 무엇입니까? 일반적으로 포인트없이 작동합니다. – vlcekmi3

+0

'SELECT * FROM table ORDER BY wins * 3 + tie DESC'이 무엇입니까? – vlcekmi3

관련 문제