Php Foreach在where语句的内部?

Php Foreach在where语句的内部?,php,mysql,pdo,Php,Mysql,Pdo,我有一个数据库,我试图显示前20名球员在我的游戏服务器。我正在从我的数据库中检索所有20个人,但我想显示他们的姓名以及他们拥有的“点数”。我的问题是,在显示前20名的表中,它没有显示他们最后一个已知的别名,然后我需要在另一个表中搜索客户机,以将玩家ID与最后一个已知的别名匹配,但如何在客户机上进行foreach,以将所有20名玩家与其别名匹配,它将只返回foreach查询中显示的第一个别名 查询前20名球员- $query = " SELECT * FROM `xlr_play

我有一个数据库,我试图显示前20名球员在我的游戏服务器。我正在从我的数据库中检索所有20个人,但我想显示他们的姓名以及他们拥有的“点数”。我的问题是,在显示前20名的表中,它没有显示他们最后一个已知的别名,然后我需要在另一个表中搜索
客户机
,以将玩家ID与最后一个已知的别名匹配,但如何在
客户机
上进行foreach,以将所有20名玩家与其别名匹配,它将只返回foreach查询中显示的第一个别名

查询前20名球员-

$query = "
       SELECT * 
FROM  `xlr_playerstats` 
ORDER BY  `xlr_playerstats`.`kills` DESC 
LIMIT 0 , 20
";      
try 
{
    $stmt = $b3->prepare($query); 
    $stmt->execute(); 
} 
catch(PDOException $ex) 
{  
    die("Failed to run query: " . $ex->getMessage()); 
} 
$rows = $stmt->fetchAll();
然后返回“客户端id”,我需要该id来交叉引用
clients
表中最后一个已知别名。然后,我尝试对所有这些ID执行foreach查询以获取别名,但它只返回foreach中的第一个循环

foreach($rows as $row):
$query = "
       SELECT * 
FROM  `clients` 
WHERE id = ".$row["client_id"]."
";      
try 
{
    $stmt = $b3->prepare($query); 
    $stmt->execute(); 
} 
catch(PDOException $ex) 
{  
    die("Failed to run query: " . $ex->getMessage()); 
} 
$names = $stmt->fetch();
endforeach;

我如何使用foreach返回一个成功的查询,其中包含我所有20个客户机的别名“?

我想您需要使用联接

SELECT *
FROM  `xlr_playerstats` 
INNER JOIN `clients` ON `clients`.`id` = `xlr_playerstats`.`client_id`
ORDER BY  `xlr_playerstats`.`kills` DESC 
LIMIT 0 , 20

我想你想用join

SELECT *
FROM  `xlr_playerstats` 
INNER JOIN `clients` ON `clients`.`id` = `xlr_playerstats`.`client_id`
ORDER BY  `xlr_playerstats`.`kills` DESC 
LIMIT 0 , 20

您可能想要sql
JOIN
。您可以提供表结构和一些虚拟数据。联接很有用,但可能有一种更简单的方法。您可能希望使用sql
JOIN
。您可以提供表结构和一些虚拟数据。联接是有用的,但可能有更简单的方法。