У меня есть база данных, где я пытаюсь отобразить 20 лучших игроков на моем игровом сервере. Я возвращаю всех 20 человек из моей базы данных, но я бы хотел отобразить их имя, а также количество «очков», которые у них есть. Моя проблема заключается в том, что в таблице, где отображается верхняя 20, она не показывает свой последний известный псевдоним, и мне нужно затем выполнить поиск в другой таблице clients
, чтобы соответствовать идентификатору игрока с последним известным псевдонимом, но как мне сделать foreach на clients
, чтобы соответствовать всем 20 игрокам с их псевдонимом, он вернет только первый псевдоним, который можно увидеть в запросе foreach.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();
Это затем возвращает «идентификатор клиента», что мне нужно пересечь ссылку на clients
таблицу для последнего известного псевдонима. Затем я пытаюсь выполнить запрос 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 из моих псевдонимов клиентов?
Вы, вероятно, захотите использовать sql 'JOIN'. –
может снабжать структуры таблицы и некоторые фиктивные данные. Соединения полезны, но может быть и более простой способ. – Kevin