【发布时间】:2015-02-04 01:46:50
【问题描述】:
我正在从数据库中提取流派列表,并尝试按最常见的情况对它们进行排序。但是当我从数据库中提取它们时,它们仍然是分开的:
Array
(
[0] => Blues Rock
[1] => Garage Rock
[2] => Hard Rock
)
Array
(
[0] => Garage Rock
[1] => Blues Rock
[2] => Hard Rock
)
但我希望它出现在一个可以排序以拉出顶级流派的数组中。它应该看起来像流派:车库摇滚、布鲁斯摇滚、硬摇滚
这是我的代码:
$genreSql = "SELECT `genres` FROM `song_genres` WHERE `album_id` = '$album_id' AND `band_id` = '$band_id'";
$queryGenre = mysqli_query($conn, $genreSql) or die (mysqli_error($conn));
while ($rowG = mysqli_fetch_array($queryGenre)){
$genres = $rowG['genres']; // Goes into the db as a string. E.g. "Str1, Str2, Str3"
$genres = explode(", ", $genres);
echo "<pre>";
print_r($genres);
echo "</pre>";
我没有进一步了解,因为我只是想将它们全部组织到一个数组中。
可能是我不知道自己在做什么——因为我在数组方面仍然很糟糕——但也许 php 的老手会找到一些东西。
【问题讨论】:
-
小心使用sqlinjection!
-
请向我们展示您的表结构、表中的示例数据以及预期结果表
-
@KimAlexander 我该怎么做?
-
您需要了解数据库规范化。不要将值存储在以逗号分隔的单个列中!使用附加关系表创建多对多关系,您可以使用简单的 SQL 查询来解决此问题。这就是 RDBMS 的用途!
-
复制-粘贴-编辑-保存-发布