Php 如何以这种方式构造mysql结果?
我想做的是让我的表格结构如下:Php 如何以这种方式构造mysql结果?,php,mysql,Php,Mysql,我想做的是让我的表格结构如下: The Monkees - I'm A Believer The Monkees - Daydream Believer The Beatles - Hello, Goodbye The Beatles - Yellow Submarine 艺术家和标题名称在同一行,我试图在搜索结果中显示它们: The Monkees: I'm A Believer Daydream Believer The Beatles: Hello, Goodbye Yellow
The Monkees - I'm A Believer
The Monkees - Daydream Believer
The Beatles - Hello, Goodbye
The Beatles - Yellow Submarine
艺术家和标题名称在同一行,我试图在搜索结果中显示它们:
The Monkees:
I'm A Believer
Daydream Believer
The Beatles:
Hello, Goodbye
Yellow, Submarine
艺术家的名字只出现一次,就像歌曲标题上方的一个类别
有没有办法用MySQL语句实现这种结构
编辑:
我尝试过使用group_concat,但我只能显示歌曲标题,而不能显示艺术家姓名。我的代码:
<?php
include 'config.php';
$trimmed = $_GET['term'];
$res = mysql_query("SELECT DISTINCT artist, GROUP_CONCAT(title SEPARATOR ', ') AS artists FROM songs WHERE artist LIKE '%$trimmed%'");
$row = mysql_fetch_array($res, MYSQL_ASSOC);
$result = $row['artists'];
echo $result;
?>
你有没有考虑过做一个测试?除此之外,您还可以在循环执行以下操作时创建数组:
$music = array();
$result = mysql_query("SELECT ARTIST,ALBUM FROM MUSIC") or die(mysql_error());
while($row = mysql_fetch_assoc($result)){
$music[$row['ARTIST']][] = $row['ALBUM'];
}
echo '<pre>'.print_r($music,1).'</pre>';
$music=array();
$result=mysql_query(“从音乐中选择艺术家、专辑”)或die(mysql_error());
while($row=mysql\u fetch\u assoc($result)){
$music[$row['ARTIST'][]=$row['ALBUM'];
}
echo.''打印($music,1)。'';
在您的查询结束时,是否按艺术家分组?在对GROUP_concat进行了一些研究之后,我陷入了困境,目前只能显示歌曲标题。我已经在我原来的帖子中发布了我的代码。我已经使用了你的php代码,它工作得非常好,尽管在寻找解决方案之后,我仍然不知道如何格式化艺术家姓名和歌曲标题,以适当地从带有链接、css等的数组中回音。正如你所说,我仍然在学习php和mysql。我将做更多的研究,看看我自己是否能找到这些答案,不过如果有人能帮我,我将不胜感激!:)不管怎样,我刚刚了解了如何使用嵌套循环之类的东西,所以我知道了如何使用数组格式化。我相信在谷歌搜索了一段时间后,我会找到如何与group_concat合作的方法。谢谢你的帮助!