[英]Loops and SQL in PHP
我有以下代碼似乎無法正常工作:
function drawTable($result)
{
var_dump($result);
echo '<table border = "1" cellpadding="10">';
echo '<tr>
<th>Album</th>
<th>Tracks</th>
<th>Price</th>
<th>Purchase</th>
</tr>';
foreach($result as &$album) {
$albumID = $album['Album_ID'];
var_dump($albumID);
//echo '<tr><td><img src="' . $resultRow['Image_URL'] . '" width="200px" height="200px"> </td>';
$tracksQuery = "SELECT Track_Title FROM Track WHERE (Album_ID = '$albumID')";
var_dump($tracksQuery);
$DBConnector2 = new DBConnector();
$tracks = $DBConnector2->getSQL($tracksQuery);
var_dump($tracks);
while ($trackTitle = mysqli_fetch_array($tracks)) {
echo $trackTitle['Track_Title'] . '<br />';
}
}
echo '</table>';
}
var $result
是Album_ID
的列表。 我想使用一個foreach
對此進行迭代,並且還要運行一個查詢以獲取其關聯的軌道。
var_dump給出:
object(mysqli_result)#4 (0) { }
另外,我用於$ result的SQL是
SELECT *
FROM Album
ORDER BY Album.Album_Name ASC
很基本。 您可以在循環中看到其他SQL的用法。
我究竟做錯了什么? 謝謝。
我假設$ result是mysql_query函數的返回。 您不能這樣做,因為它仍然是對mysql結果集的引用,而不是真正的mysql結果。
除了使用foreach迭代,還可以使用while循環,如下所示:
while ($album = mysql_fetch_assoc($result)) {
...
...
}
我不確定是否首先可以在函數中傳遞mysql結果引用,但可以嘗試一下:)
我知道,您不能將foreach與mysqli一起使用。 更改為此:
while ($row = $result->fetch_assoc()) { ...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.