我有以下功能:
public function albums($artist) {
$artist = $this->db->sanitize($artist);
$query = "
SELECT `album`, `cover`
FROM `albums`
join `artists`
on `albums`.`artistsID` = `artists`.`id`
WHERE `artists`.`artist` = ?
";
$stmt = $this->db->mysqli->prepare($query);
$stmt->bind_param('s', $artist);
$stmt->execute();
$result = $stmt->get_result();
while($row = $result->fetch_assoc()) {
$data[] = $row;
}
return $data;
}
可以看到,这将返回一个包含album
名称和cove
文件路径的数组。数组输出如下所示:
Array
(
[0] => Array
(
[album] => Album name
[cover] => file path
)
[1] => Array
(
[album] => Album name
[cover] => file path
)
)
如您所见,它返回一个包含0
和1
的数组,以及一个包含album
和cover
的数组。
我希望它是一个数组,更容易使用while循环。所以我可以这样写:
while($row = $data) {
echo $row['album'].' <img src="'.$row['cover'].'">';
}
,而不是像我现在必须做的2 foreach循环。我的问题是如何得到一个更容易使用的数组就像你通常做的那样:
<?php
$query = mysqli_query($connect, "SELECT `username` FROM `users` WHERE `id` = 1");
while($row = mysqli_fetch_assoc($query)) {
echo $row['username'];
} //Just as an example to make the question a bit more understandable
?>
我希望有人能帮我解决这个问题。如果您需要更多的信息请告诉我。
我希望它是一个数组,更容易使用while循环
你应该使用foreach
循环来解决这个问题,然后整个"问题"自己解决,而不需要进一步干预数组结构。
你正在使用fetch_assoc()所以…
while($row = $result->fetch_assoc()) {
echo $row['album'] . ' <img src="' . $row['cover'] . '">';
}