我有一个很奇怪的问题。我在一个php sql查询中使用groupconcat。它按预期工作,项目之间使用默认的逗号分隔。但是,我想要一个逗号和空格。我将sql查询更改为:
GROUP_CONCAT(platforms.platformname SEPARATOR ', ')
结果是,我的逗号分隔的项目只是停止显示。我试过很多不同的分隔符,但没有骰子。除了字段名以外的任何内容都会阻止页面的显示。
非常感谢您的帮助!
编辑:抱歉,我在ipad上把问题打出来了,但不知什么原因,它打错了。我在实际代码中使用了正确的。不管怎样,由于某种原因,这个网站因为被愚弄而关闭了(尽管我在这里找不到被愚弄的人)。感谢所有的回答。
edit2:这是我目前拥有的$sql字符串:
$sql = "select g.*, group_concat(distinct p.platformname separator ', ')
from games g
inner join platformrelations pr
on g.gameid=pr.gameid
inner join platforms p
on p.platformid=pr.platformid";
如果我试图在页面上显示“platforms”,上面的返回空白字段。如果我去掉“distinct”和“separator”位,它就工作了(即。显示“xbox one,pc”)。值得注意的是,我在sql中运行了这个查询,它正常工作了。所以我不完全确定我在哪里绊倒了。
编辑3:更多代码
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT *, GROUP_CONCAT(platforms.platformname separator ', ') FROM games
INNER JOIN platformrelations on platformrelations.gameid = games.gameid
LEFT JOIN platforms on platformrelations.platformid = platforms.platformid";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo $row['GROUP_CONCAT(platforms.platformname)'];
}
} else {
echo "0 results";
}
$conn->close();
?>
1条答案
按热度按时间wvmv3b1j1#
我知道了。
我没有为组\u concat值使用别名。这样做允许我将分隔符放入其中,然后调用$row['alias']。
出于某种原因,我最初的sql查询运行得非常好。但这似乎使在php中调用数据更为愉快。