關於自PHP動態網頁中存取MYSQL資料庫中的圖片

edited 十月 2013 in 資料庫
各位PHP的先進們大家好

再此想向各位先進們請教一個技術性的問題。
目前我正在嘗試用PHP設計一個簡單的互動式資料庫網頁,並採用MYSQL 做為資料庫系統,APACHE 為網頁伺服器,其版本分別是:PHP 5.1.4, MYSQL 5.0, APACHE 2.2...

而設計的方式是用HTML的table 來顯示資料表中每個欄位的數據,欄位分別是:
1. 產品編號 product_id
2. 產品名稱 product_name
3. 產品價格 product_price
4. 產品數量 product_num
5. 產品圖片 photo

到目前為止,所有的文字及數字的資料都根據資料表正確顯示,除了圖片以外。我用的方式是:

$sql="SELECT product_id, product_name, product_price, product_num, photo, mime FROM $TBL_NAME";
$conn = mysql_query($sql, $link) or die(mysql_error($link));
$datos = mysql_fetch_array($conn);
$image = $datos[4];
$mime = $datos[5];
$cod = $datos[0];

$list =@mysql_query($sql,$link);
if(empty($list)){
echo "<tr><td>No datos almacenados en la BBDD!</td></tr>";
}else{
while(list($product_id,$product_name,$product_price,$product_num,$image) = mysql_fetch_row($list)){
echo "<tr bgcolor='#EBFAC9'><td> $product_id </td><td><a href='show_news.php?product_id=$product_id'> $product_name </a></td><td> $product_price </td><td> $product_num </td><td> <img src='imageshow.php?product_id='$cod'' alt='Image from database' /></td></tr>";
}
}

imageshow.php 則為:

<?php
require("config1.php");
//require("cookie.php");
//$id = $_GET;
$enlace = mysql_pconnect($DB_SERVER, $DB_LOGIN, $DB_PASSWD) or die(mysql_error($enlace));
mysql_select_db($DB_NAME, $enlace) or die(mysql_error($enlace));
$img = "SELECT thumb, mime FROM descripcion";
$conx = mysql_query($img, $enlace) or die(mysql_error($enlace));
$data = mysql_fetch_array($conx);
$imagen = $data[0];
$mime = $data[1];
header("Content-Type: $mime");
echo $imagen;
?>

如此一來,圖片是有顯示,只是每筆紀錄的圖片都同是第一張,無法根據產品編號來正確顯示圖片。

我目前還算是新手,所以還請各位先進多多包含,不吝指教。

感恩

湯瑪斯 2006/10/25

原始討論: http://twpug.net/x/modules/newbb/viewtopic.php?topic_id=2211

評論

  • edited 十月 2006
    不知該說什麼。。。。
    直接講答案好了
    <img src='imageshow.php?product_id='$cod'' alt='Image from database' />
    改成
    <img src='imageshow.php?product_id='$image'' alt='Image from database' />
  • edited 十月 2006
    湯瑪斯

    請問你的環境是Windows還是Linux?
  • edited 十月 2006
    感謝 SAM 的指導,可是問題仍然存在,我發覺 imageshow.php 好像把顯示圖片鎖定在第一張,並且出現很多亂碼,不管怎樣在 <img src>設定參數與變數,都沒有辦法讓它顯示其他的圖片,不知道還有什麼其他的方式可以顯示圖片,而又不讓它變成亂碼。
    我目前使用的作業系統是Windows XP, 並用 Dreamweaver MX 作為開發工具。

    多謝指教

    湯瑪斯
  • edited 十月 2006
    麻煩注意看一下你的image.php
    $img = "SELECT thumb, mime FROM descripcion";
    根本沒下語法篩選圖檔,怎能預期撈其他的圖?
  • edited 十月 2006
    再次向大家問候

    SAM 您說的沒錯,$img = "SELECT thumb, mime FROM descripcion"; 之後應該要追加 WHERE 並以 product_id 作為篩選對象。

    感謝大家的指教,問題終於迎刃而解,以下與大家分享解決的方法:

    首先我在 <img src='imageshow.php?idp='$product_id'' alt='Image from database' /> 設了一個名為idp的變數,並指定它的值為$product_id, 之後在 imageshow.php 檔案作更改:起始的第一列增加 $idp = $_GET["idp"]; 讀取idp的值,然後再加上SAM所說的 $img = "SELECT product_id,thumb, mime FROM descripcion WHERE product_id='$idp'"; 作為圖片篩選,這樣就 OK了。

    感謝大家

    湯瑪斯
Sign In or Register to comment.