2010-09-05 77 views
0

顯示取決於MySQL查詢結果的圖像根據查詢結果,我想了一段時間,並搜索網絡,以便使用PHP動態顯示圖像的有效方式。舉例來說,我的資產表中有一個名爲「devicetype」的字段,我想根據設備的類型顯示不同的圖標。如何使用PHP

任何人都可以指出我正確的方向嗎?我一直在閱讀,許多文章都建議不要將圖像插入到數據庫中。

謝謝!

回答

4

您不需要將圖像插入到數據庫中。只需檢查表格中列的值,然後使用基於它的適當圖像源。事情是這樣的:

while($row = mysql_fetch_assoc($result)) { 
    $src = ''; 
    switch($row['devicetype']) { 
      case 'device1': 
       $src = 'img_for_device.jpg'; 
       break; 
      case 'device2': 
       $src = 'img_for_device2.jpg'; 
       break; 
      default: 
       $src = 'default.jpg'; 

     } 
     ?><img src="<?php echo $src; ?>" /><?php 
} 
+0

謝謝,我非常喜歡這種方式。此外,第一個響應會很有用,因爲我將資產類型存儲爲文本而不是id,所以它只是在img src url中追加內容的一種情況。 非常感謝! – TuxMeister 2010-09-05 01:38:00

+0

偉大的片段,易於使用和直觀。 – 2013-08-09 01:07:22

-1

您可以在數據庫中插入圖像文件的鏈接。

+0

這完全不解決問題。 – 2010-09-05 01:31:46

+0

爲什麼不呢?來自OP:「任何人都可以指引我走向正確的方向?我一直在閱讀,許多文章建議不要將圖像插入到數據庫中。「並且他可以高效地返回查詢中的鏈接並顯示它的圖像 – laurent 2010-09-05 14:18:43

+0

這將執行與執行'switch'語句查找相同的工作正確的圖像名稱硬編碼到程序中......並且在我看來,從數據庫返回與設備相關的圖像文件名比硬編碼好很多。接受的答案有效,但是非常有限,因爲如果他插入新設備,OP將不得不更改它的程序! – laurent 2010-09-05 14:31:17

1

我會將圖像存儲在您的網站文件夾中,即「website/deviceimg/*」。然後,根據你的sql語句,我會加載相應的圖像的名稱。例如,您可以使用設備類型作爲圖像名稱。加載圖片相當容易: 「< img src ='+ devicetype +'.jpg'/>」

0

我不知道我完全理解你的問題,但你不能上傳你的圖片打算在服務器上使用?我認爲這比將實際圖像存儲在數據庫中要好。

所以,你的代碼將是這樣的:

if (results[devicetype] == "A") { 
    echo '<img src="images/A.png" />' 
else if (results[devicetype] == "B") { 
    echo '<img src="images/B.png" />'