1

我在从 SQL 数据库获取的信息中对表进行排序时遇到问题。我需要使用 PHP 变量 $points 对表进行排序(从 SQL 数据库中的两个不同字段计算并打印为表的最后一部分,因此这些点不包含在 SQL 中)。

所以基本上我需要按 $points 对表进行排序,而不会将有关点的任何信息直接保存到 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>";
}
4

1 回答 1

1

为什么不?

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

或者如果您不想在 SQL 中进行计算

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

这是:http ://sqlfiddle.com/#!2/d2045/4

于 2013-02-02T13:21:58.173 回答