Php 排名更新问题

Php 排名更新问题,php,html,mysql,Php,Html,Mysql,我有这段代码,它给出了数据库的输出,现在我想根据TeamPoints对其进行排序。得分较高的队获得第一名。我如何实现它 我一直在尝试在数据库中添加一个TeamRank字段,该字段按增量或减量更新团队排名。但它不起作用,所以我决定按点数排序,但现在我面临着按递增顺序排列的问题 这就是你要找的吗 SELECT TeamID,TeamName,TeamLeader,TeamEmail,P_1,P_2,P_3,P_4,P_5,S_1,S_2,TeamWins,TeamLoss,TeamPoints F

我有这段代码,它给出了数据库的输出,现在我想根据
TeamPoints
对其进行排序。得分较高的队获得第一名。我如何实现它

我一直在尝试在数据库中添加一个
TeamRank
字段,该字段按增量或减量更新团队排名。但它不起作用,所以我决定按点数排序,但现在我面临着按递增顺序排列的问题


这就是你要找的吗

SELECT  TeamID,TeamName,TeamLeader,TeamEmail,P_1,P_2,P_3,P_4,P_5,S_1,S_2,TeamWins,TeamLoss,TeamPoints
FROM team
where TeamID>0
ORDER BY TeamPoints DESC;

将排名添加到select并输出,同时将输出限制为一个页面(共10页-易于更改):-



1。规范化您的数据是的,我刚刚做了,现在我有一个数据库,团队信息作为TeamID主键,其中其他数据库的团队排名信息作为TeamRank主键,我认为systax存在问题,我收到了这个错误警告:mysqli_fetch_assoc()希望参数1是mysqli_result,第69行的C:\xampp\htdocs\teamrankingdb\rank.php中给出了布尔值(忘记给子查询一个别名)。现在就试试谢谢老兄,问题解决了!!顺便说一句,我正在考虑创建另一个包含teamrank信息的表。我如何修改该表以添加另一个包含TeamWins TeamLoss teamrank和TeamPoints的表?问题是,如果有一个单独的表,该表中的列组将保持最新状态。虽然你可以在另一个表中有赢/输/分,但与在主表中相比,它并不能真正为你节省任何东西(两个表之间存在1对1的关系)。从理论上讲,您应该只获得每个匹配的结果并计算字段。然而,拥有这些字段是有用的,并且是合理的非规范化水平。如果您将它们保存在一个单独的表中,只需在子查询中向该表添加一个内部联接(即交叉联接之前)。P_1到P_5是参与者,其中S_1和S_2是替换者,我知道。请参阅规范化。是的,我尝试实现了这一点,但在获取PHP表中的输出时遇到了问题。。
    CREATE VIEW Rankings AS
    SELECT  TeamID
         , TeamName
         , TeamLeader
         , TeamEmail
         , P_1        -- none 
         , P_2        -- of
         , P_3        -- these
         , P_4        -- belong
         , P_5        -- in a 
         , S_1        -- teams
         , S_2        -- table
         , TeamWins   -- and even
         , TeamLoss   -- these are
         , TeamPoints -- questionable
      FROM team
     where TeamID > 0;
<?php
    $con=mysqli_connect("", "", "", "");

    // Check connection:
    if (mysqli_connect_errno())
    {
        echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }

    $PageStart = 10 * intval($_POST['page']);

    $result = mysqli_query($con,"SELECT TeamID,
                                TeamName,
                                TeamLeader,
                                TeamEmail,
                                P_1,
                                P_2,
                                P_3,
                                P_4,
                                P_5,
                                S_1,
                                S_2,
                                TeamWins,
                                TeamLoss,
                                TeamPoints,
                                TeamRnk
                                FROM
                                (
                                    SELECT TeamID,
                                            TeamName,
                                            TeamLeader,
                                            TeamEmail,
                                            P_1,
                                            P_2,
                                            P_3,
                                            P_4,
                                            P_5,
                                            S_1,
                                            S_2,
                                            TeamWins,
                                            TeamLoss,
                                            TeamPoints,
                                            @Rank := @Rank + 1 AS TeamRnk
                                    FROM SomeTable
                                    CROSS JOIN (SELECT @Rank:=0) Sub0
                                    ORDER BY TeamPoints DESC
                                ) Sub1
                                LIMIT $PageStart, 10");

    echo "<table border='1'>
    <tr>
        <th>TeamRnk</th>
        <th>TeamID</th>
        <th>TeamName</th>
        <th>TeamLeader</th>
        <th>TeamEmail</th>
        <th>Player #1</th>
        <th>Player #2</th>
        <th>Player #3</th>
        <th>Player #4</th>
        <th>Player #5</th>
        <th>Subsitute #1</th>
        <th>Subsitute #2</th>
        <th>Total Wins</th>
        <th>Total Losses</th>
        <th>Total Points</th>
    </tr>";

    while($row = mysqli_fetch_assoc($result))
    {
        echo "<tr>";
            echo "<td>" . $row['TeamRnk'] . "</td>";
            echo "<td>" . $row['TeamID'] . "</td>";
            echo "<td>" . $row['TeamName'] . "</td>";
            echo "<td>" . $row['TeamLeader'] . "</td>";
            echo "<td>" . $row['TeamEmail'] . "</td>";
            echo "<td>" . $row['P_1'] . "</td>";
            echo "<td>" . $row['P_2'] . "</td>";
            echo "<td>" . $row['P_3'] . "</td>";
            echo "<td>" . $row['P_4'] . "</td>";
            echo "<td>" . $row['P_5'] . "</td>";
            echo "<td>" . $row['S_1'] . "</td>";
            echo "<td>" . $row['S_2'] . "</td>";
            echo "<td>" . $row['TeamWins'] . "</td>";
            echo "<td>" . $row['TeamLoss'] . "</td>";
            echo "<td>" . $row['TeamPoints'] . "</td>";
        echo "</tr>";
    }

    echo "</table>";
    mysqli_close($con);
?>