【发布时间】:2014-05-29 01:16:27
【问题描述】:
在我的表中,我有“艺术家”和“歌曲”,现在我想输出艺术家姓名,然后是我数据库中该艺术家的所有歌曲。像我在下面的代码中那样使用一个 while 循环不起作用。
<div class="panel-group space" id="accordion"> <!-- ACCORDION FOR FOLDER/TRACK SELECTION -->
<?php
$con=mysqli_connect('localhost','root','raspberry','raspberryfm');
$result = mysqli_query($con,"SELECT DISTINCT artist FROM playlist ORDER BY artist");
while($row = mysqli_fetch_array($result)) {
$artistnbsp = str_replace(' ', '_', $row['artist']);
$artist = $row['artist'];
$result2 = mysqli_query($con,"SELECT song FROM playlist WHERE artist= $artist");
while($row = mysqli_fetch_array($result2)) {
$song = $row['song'];
echo '
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title align2 color2">
<a data-toggle="collapse" data-parent="#accordion" href="#collapse'.$artistnbsp.'">
'.$artist.'
<button type="button" class="btn btn-success btn-sm pull-right pb">Play All</button>
</a>
</h4>
</div>
<div id="collapse'.$artistnbsp.'" class="panel-collapse collapse">
<div class="panel-body color2">'
. $song .
'</div>
</div>
</div>';
}
}
mysqli_close($con);
?>
</div>
【问题讨论】:
-
将
WHERE artist= $artist"更改为WHERE artist= '$artist'",这可能是此处的一个促成因素,其中需要引用$artist。我怀疑这是一个整数。与1相比,与Stevie Ray Vaughan不同;-) -
您在两个循环中都使用了 $row ,这两个循环相互覆盖。改用 $row2。
-
这对我有用,非常感谢!但是现在我遇到了另一个问题,这张图片可能解释得更好:i.epvpimg.com/C1jbe.png 我想要的是为每个艺术家提供一个手风琴,里面装满了所有的歌曲。现在我每首歌都有一个。
-
不客气。您在下面尝试过 Robbert 的回答吗?
-
是的,它确实有效,但图像上的问题仍然存在。
标签: php mysql while-loop