开发者社区 问答 正文

HTML的MySQL锦标赛与PHP排名

我有一个带有3个表的MySQL数据库。

桌上游戏机 P_id =内容(1、2、3,)

P_name =内容(比约恩,约亨,尼尔斯)

桌上锦标赛 T_id =内容(1、2)

T_date =内容(2018、2019)

T_players =内容(123,123)

桌上游戏 G_id =内容(1、2)

G_tournament_id =内容(桌面锦标赛的T_id)

G_player_away =内容(例如,用户ID 1)

G_player_home =内容(例如,用户ID 2)

G_player_away_points =内容(11)

G_player_home_points =内容(8)

游戏表包含更多数据。

现在,我想创建一个以PhP为排名的表。

地名点

比约恩11

8架8

尼尔斯4

....

谁能告诉我来自MySQL数据库的php查询如何工作?

展开
收起
被纵养的懒猫 2019-10-09 16:36:11 359 分享 版权
阿里云 AI 助理回答

要从您的MySQL数据库中创建一个PHP排名表,您需要执行以下步骤:

  1. 连接到MySQL数据库:首先,使用PHP的mysqli_connectPDO扩展来建立与MySQL数据库的连接。

  2. 编写SQL查询:编写一个SQL查询来获取所有玩家的得分总和。这可能涉及联接(JOIN)多个表,并使用GROUP BY和SUM函数来计算每个玩家的总分。

  3. 执行查询并处理结果:在PHP中执行这个查询,然后遍历结果,将它们按照得分降序排序,最后输出为HTML表格或其他格式。

下面是一个简单的示例代码,展示了如何实现这一过程:

<?php
// 数据库连接信息
$servername = "localhost";
$username = "your_username";
$password = "your_password";
$dbname = "your_dbname";

// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);

// 检查连接
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}

// SQL查询:假设P_name是玩家名,我们通过G_player_away和G_player_home关联游戏表和玩家表,计算每位玩家的总分
$sql = "SELECT P_name, SUM(G_player_away_points + G_player_home_points) AS total_points
        FROM G_game
        JOIN T_tournament ON G_game.G_tournament_id = T_tournament.T_id
        JOIN P_player ON G_game.G_player_away = P_player.P_id OR G_game.G_player_home = P_player.P_id
        GROUP BY P_name
        ORDER BY total_points DESC";

$result = $conn->query($sql);

// 输出排名表
echo "<table border='1'>
<tr><th>姓名</th><th>分数</th></tr>";

if ($result->num_rows > 0) {
    // 输出每行数据
    while($row = $result->fetch_assoc()) {
        echo "<tr><td>" . $row["P_name"] . "</td><td>" . $row["total_points"] . "</td></tr>";
    }
} else {
    echo "0 结果";
}

echo "</table>";

// 关闭连接
$conn->close();
?>

请注意,上述代码中的表名和字段名应根据您的实际数据库结构进行调整。此外,确保您的数据库连接信息(如用户名、密码和数据库名)是正确的。此代码段使用了mysqli扩展,但您也可以选择使用PDO,这取决于个人偏好和项目需求。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答