同じSQLステートメントで2つのGROUP_CONCATを使用しようとしています。
私は次のコードを持っています:
try
{
$sql = 'SELECT player.id, player.name AS name, GROUP_CONCAT(previousclubs.name)
previousclubs, satscore, gpa, GROUP_CONCAT(link) link
FROM player INNER JOIN playerpreviousclubs
ON player.id = playerid
INNER JOIN previousclubs
ON previousclubid = previousclubs.id
INNER JOIN links
ON links.playerid = player.id
GROUP BY player.id';
$result = $pdo->query($sql);
}
catch (PDOException $e)
{
$error = 'Error fetching details: ' . $e->getMessage();
include 'error.html.php';
exit();
}
foreach ($result as $row)
{
$names[] = array(
'id' => $row['id'],
'name' => $row['name'],
'previousclubs' => $row['previousclubs'],
'links' => $row['link']
);
}
include 'profiles.html.php';
プレーヤーが以前の3つのクラブと1つのリンクを言った場合、次のように表示する代わりに:
名前:ジョン・スミス
以前のクラブ:アーセナル、レディング、QPR
リンク: www.bbc.co.uk
このように表示されます:
名前:ジョン・スミス
以前のクラブ:アーセナル、レディング、QPR
リンク: www.bbc.co.uk、www.bbc.co.uk、www.bbc.co.uk
さらに悪いことに、複数のリンクがある場合(以下では2つのリンクが使用されています)、次のようになります。
名前:ジョン・スミス
以前のクラブ:アーセナル、アーセナル、読書、読書、QPR、QPR
リンク: www.bbc.co.uk、www.football.com、www.bbc.co.uk、www.football.com、www.bbc.co.uk、www.football.com
誰かがここで何が起こっているのか、そしてそれを修正する方法についていくつかのガイダンスを提供できますか?
以前のクラブの最初のGROUP_CONCATはそれ自体で正常に機能しますが、リンクの2番目のGROUP_CONCATがミックスでスローされると、上記の問題が発生します。
お手数をおかけしますが、よろしくお願いいたします。