2013-03-26 60 views
0

首先我想知道如何通過使用圖像的路徑在PHP中顯示圖像?而不使用BLOB。PHP_SQL查詢沒有返回正確答案

我有我的數據庫中的表這是奠定了這樣..

列:I1 + I2 I3 I4 I5 I6 I7 I8

每個字段保存一個值或空。

我基本上想顯示i5 i6 i7 i8的值根據什麼是i1 i2 i3 i4。

對於e.g:

I1 =一個I2 = B i3的= E I4 = Q I5 =克I6 = 1 I7 = I8 =

對於這種情況下,我想G和L被顯示。但我想要將值存儲在數組中。

我試着這樣做:

$list = array(g,l) 
$query = " SELECT i5, i6, i7, i8 FROM Table WHERE i1 AND i2 AND i3 AND i4 IN ('$list') "; 
$s = mysql_query($query); 
while($data = mysql_fetch_array($s)){ 
    $r_1 = $data['i5']; 
    $r_2 = $data['i6']; 
    $r_3 = $data['i7']; 
    $r_4 = $data['i8'];   
} 
echo "$r_1 $r_2 $r_3 $r_4"` 

即使我做$list[0]

幫助是不工作的,將不勝感激。謝謝

+0

你的意思是不工作?錯誤訊息?不是你期望的輸出? – 2013-03-26 16:38:37

+0

沒有任何回覆@BrendanLong – StringerB 2013-03-26 16:42:21

+0

你最近怎麼樣做你的查詢?你能告訴我們完整的代碼嗎? – 2013-03-26 16:50:19

回答

2

首先,我想知道如何通過使用圖像的路徑在PHP中顯示圖像?而不使用BLOB。

您不在PhP中顯示圖像,而是在html中顯示圖像。如果你已經得到了路徑,然後簡單地生成HTML img標籤設置爲路徑src屬性:

<img src="whatever your path is" alt="My Image" /> 

斑點用於存儲圖像(實際上大的二進制數據,圖像,電影,... )直接在數據庫中。

+0

你能告訴我一個例子,試圖尋找教程,但徒勞無功。謝謝@Bartdude – StringerB 2013-03-26 16:43:42

+0

什麼教程? HTML中的圖像標籤? – 2013-03-26 16:44:41

+0

否參考路徑,從db – StringerB 2013-03-26 16:46:37

0
$s = mysql_query($query); 
while($data = mysql_fetch_array($s)){ 

你不檢查查詢過程中是否有錯誤。從the documentation for mysql_query

對於SELECT,SHOW,描述,解釋等語句返回的結果集,請求mysql_query()成功返回的資源,或者在錯誤FALSE。

所以做:

$s = mysql_query($query); 
if($s === FALSE) { 
    // Do something to handle the error here, possibly calling die() 
} 

下一個問題是,如果沒有結果?你的變量都是空的。你可以測試:

if(empty($r_1)) { 
    echo "Oops, I guess we didn't get any results"; 
    // die()? 
} 

如果我們得到不止一行結果怎麼辦?我不確定你的程序應該如何處理這個問題。

最後,我想你的SQL查詢是不是做你覺得它在做什麼:

SELECT i5, i6, i7, i8 FROM Table WHERE i1 AND i2 AND i3 AND i4 IN ('$list') 

這會給你i5i6i7i8i1是真實的,i2是真實的, i3爲真,並且i4等於字符串$list。如果你想在列表中找到所有結果,你需要做多個IN報表,你需要將$list作爲列表,而不是字符串。你可以看到this answer關於如何構建查詢字符串以將列表傳遞給MySQL。

另請注意,mysql_*函數已被棄用,您應該學會使用PDO或mysqli_*函數。它不會花費太多時間,並且安全的數據庫訪問是很多與他們更容易。

+0

謝謝,正在考慮使用學習PDO,我很快就會。我看了一下你的鏈接,但是當你說我需要多個'IN'語句時,你的意思是這種方式'WHERE $ i1 IN($ list)AND $ i2 IN($ list)...'@BrendanLong – StringerB 2013-03-26 18:15:00

+0

@ StringerB是的。除了把$ list放在一起是非常危險的,並且可能無法工作。 – 2013-03-26 19:08:40