2011-11-10 29 views
1

所以我實施了一個贊助管理網站,然後我遇到了一些麻煩。我知道將圖像存儲到數據庫可能是這樣的痛苦在脖子上,但這是必需的(有一個文件系統將圖像存儲在校園服務器中是禁止的)。從數據庫顯示圖像作爲表格中的單元格

我創建3個表:

  • 一個信息表,用於存儲文本信息,
  • 圖像表存儲在BLOB時尚圖像和
  • 一個id_table表作爲參考表保存圖片ID的記錄和信息ID。
$result=mysql_query("SELECT info_id,info_name,info_year,info_level,info_email,info_describe FROM info"); 
while($row = mysql_fetch_array($result)) 
{ 
    echo "<td>" . $row['info_name'] . "</td>"; 
    echo "<td>" . $row['info_year'] . "</td>"; 
    echo "<td>" . $row['info_level' ] . "</td>"; 
    echo "<td>" . $row['info_email'] . "</td>"; 
    echo "<td>" . $row['info_describe'] . "</td>"; 
    $result_image_id = mysql_query("SELECT id_image FROM id_table WHERE id_info = '{$row['info_id']}'"); 
    $row_image = mysql_fetch_array($result_image_id); 
    $result_image = mysql_query("SELECT image_stuff FROM image WHERE image_id = '{$row_image['id_image']}'"); 
    $row_2 = mysql_fetch_array($result_image); 
    $content=$row_2['image_stuff']; 
    echo "<td>" ; 
    header('Content-type: image/jpeg'); 
    echo $content; 
    echo "</td>"; 
    echo "</tr>"; 
} 

然後在瀏覽器中,我被重定向到一個空白頁。如果我刪除了這個頭文件函數,我在頁面中有一個表格,但圖像列中沒有任何內容。

有什麼建議嗎?

此外,我想在我的while循環使用<img>標籤:

echo "<img src='$content' />"; 

好消息是,它種制定了但圖像文件不實際顯示。

我在我的頁面中有一個表格,圖像列中充滿了圖像文件,但它看起來就像服務器沒有找到圖像。

我想我的插入腳本不存在任何問題,因爲當我應用該img標籤時,「無法顯示」標誌只出現在其行是我沒有將圖像文件上傳到數據庫中的單元格中。 。

回答

2

你不能用頭這樣的...

嘗試類似的東西

$result=mysql_query("SELECT info_id,info_name,info_year,info_level,info_email,info_describe FROM info"); 
while($row = mysql_fetch_array($result)) 
{ 
echo "<td>" . $row['info_name'] . "</td>"; 
echo "<td>" . $row['info_year'] . "</td>"; 
echo "<td>" . $row['info_level' ] . "</td>"; 
echo "<td>" . $row['info_email'] . "</td>"; 
echo "<td>" . $row['info_describe'] . "</td>"; 
$result_image_id = mysql_query("SELECT id_image FROM id_table WHERE id_info = '{$row['info_id']}'"); 
$row_image = mysql_fetch_array($result_image_id); 
$result_image = mysql_query("SELECT image_stuff FROM image WHERE image_id = '{$row_image['id_image']}'"); 
$row_2 = mysql_fetch_array($result_image); 
$content=$row_2['image_stuff']; 
echo "<td>" ; 
echo '<img src="data:image/png;base64,' . base64_encode($content) . '" />'; 
echo "</td>"; 
echo "</tr>"; 
} 

更改PNG爲您存儲任何類型的圖像。我沒有看太多的代碼,但這應該工作。

+0

如果我沒有編碼$內容,我會得到像http:// localhost/project_name/Array作爲任意圖像的URL。一個「無法顯示」徽標的東西出現在圖像列。是否有可能我的圖像插入腳本中有什麼錯誤? – jasonkim

+0

發佈您的圖像存儲代碼。 – holycowbatman

+0

'base64_encode()'是一個帶寬豬,因爲你需要一個二進制圖像並將其轉換爲ASCII字符!爲什麼不將圖像保存到磁盤或者更好,而不是將二進制圖像存儲在數據庫中?將路徑存儲到可訪問Web的文件系統上的二進制映像。 –

0

echo「」。 $ row ['post_image']。 「」

+0

請解釋這可以如何幫助提問作者? –

相關問題