gpt4 book ai didi

PHP - 无法关联结果并在 MYSQL 中获取它们

转载 作者:行者123 更新时间:2023-11-30 22:47:01 25 4
gpt4 key购买 nike

所以在一个问题=> How to fetch targeted results that are related in MYSQL?问了一个关于如何获取相关结果的问题,我得到了答案,但是从那以后我改变了格式。

对于我的项目,我有四个圆圈,它们的脸上会显示一个数字,如下所示:

<div class="front" style="background: #4094ee;">
100
</div>

现在我想使用这些数字,例如其中一个数字需要显示用户被禁止的次数(行)。如果用户不存在于表中(从未被禁止),则返回数字 0。

我得到了要显示的数字,但是它没有显示每个用户名的正确数字,如果存在行,它会一直显示表中的总行数而不是每个用户的行数

<?php
try {
$stmt = $db->prepare('SELECT player_data.uuid, banned_players.uuid FROM player_data, banned_players WHERE username = :username and player_data.uuid >= banned_players.uuid');
$stmt->execute(array(':username' => $_GET['name']));
} catch(PDOException $e){
//if an error is thrown a message will display
echo $e->getMessage();
exit();
}
?>
<?php if ($stmt->rowCount() <= 1 ): ?>
0
<?php else: ?>
<?php while(false !== ($row = $stmt->fetch(PDO::FETCH_ASSOC))): ?>
<?php endwhile; ?>
<?php endif; ?>

我需要使用的列是来自表

   player_data:
-uuid
-username
banned_players:
-uuid(player_data needs to reference this for each player)
-permanent(if the player is banned permanently this will return 0 or 1)
-active(if the player's ban is active this will return 0 or 1)

如果可能的话,我想尽量避免对数据库表进行过多修改,甚至根本不修改。

其余表格的设置方式是每个用户都通过他们的 UUID 而不是他们的用户名来引用。我正在尝试为用户关联每个表中的 UUID

正如我之前提到的,我设法获得了一个要显示的数字,但这不是我想要的数字。

所以这是我拥有的 php,它非常困惑,我不确定如何修复它,什么是我想要完成的最佳解决方案?

另外,如果答案非常明显和清楚,我深表歉意,我对 PHP 不太好,因为我还在学习。

最佳答案

如果我对你的理解正确,你的 UUID 列是玩家的唯一标识符(key),因此两个表中的值应该在两列相等的情况。

鉴于这种理解,您的查询没有什么意义,因为您正在使用 >= 进行比较,使其选择您想要的记录,但也选择您不想要的记录。应该是:

SELECT player_data.uuid, banned_players.uuid 
FROM player_data, banned_players
WHERE player_data.uuid = banned_players.uuid
AND player_data.username = :username

也可以更明确地表达为:

SELECT player_data.uuid, banned_players.uuid 
FROM player_data
JOIN banned_players ON (player_data.uuid = banned_players.uuid)
WHERE player_data.username = :username

关于PHP - 无法关联结果并在 MYSQL 中获取它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29311537/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com