2012-12-11 67 views
1

我想從我的SQL表,NEWS中排名前五的圖像連續出現。當我嘗試這個時,會出現一排空的圖像框。列表image表示圖像的目錄。我再次檢查以確保它是確切的目錄。來自一個SQL數組沒有顯示的圖像

<?php 
    $leaders=mysql_fetch_array(mysql_query("SELECT `image` FROM news ORDER BY ID DESC LIMIT 5")); 
    for ($i=1; $i<=5; $i++) 
     { 
?> 
<img src="<?php echo($leaders[$i])?>" style="width: 200px; height: 200px;"></img> 
<?php 
    } 
?> 

有人知道爲什麼圖像沒有顯示出來嗎? 另外,我在sql命令行客戶端上測試了它。

SELECT `image` FROM news ORDER BY ID DESC LIMIT 5 

確實顯示圖像url。它應該工作。

+0

** Heads up!** PHP的未來版本是*棄用和刪除mysql_'系列函數。現在將是[切換到PDO](http://php.net/book.pdo)或[mysqli](http://php.net/book.mysqli)的好時機。 – Charles

回答

2

mysql_fetch_array(已棄用)返回1個單行,而不是整個結果集。你需要它來獲取另一行。像這樣的東西會工作:

<?php 
    $leaders=mysql_query("SELECT `image` FROM news ORDER BY ID DESC LIMIT 5"); 
    while($row = mysql_fetch_array($leaders)){ 
    ?> 
    <img src="<?php echo($leaders['image'])?>" style="width: 200px; height: 200px;"></img> 
    <?php 
    } 

但嚴重的是,放眼PDO &開始轉換。

1

您誤解了mysql_fetch_array的工作原理。它從結果集中獲取一行(您的第一張圖片),因此您必須遍歷所有結果以獲取所有圖像。

但是,您應該在PDO/mysqli中執行該操作,因爲mysql_*函數已被棄用。

+0

啊,我明白了。謝謝您的幫助。 –