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

标签 php mysql database

所以在一个问题=> 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/

相关文章:

php - 使用 php 7.1 在 Ubuntu 14.04.2 LTS 上安装 php-imap

PHP 的 json_decode 无法解码有效的 JSON

php - 如果mysql查询没有返回结果返回值

从另一台机器上的 HTML 文件访问 PHP 文件

php - 关于mysql和mysqli的使用

php - jQuery 中的空格破坏了 img src

php - MySQL - 保存 JSON 时间戳

MySQL统计结果集中列值的变化

mysql - SQL select 查询使 MySQL 服务器没有响应并且没有得到结果

asp.net - 数据驱动设计问题——数据计数