簡體   English   中英

PHP中的循環和SQL

[英]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 $resultAlbum_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM