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);
?>