2011-05-31 91 views
1

如果用戶沒有上傳圖片,我試圖獲取默認圖片,但我總是獲取用戶上傳的圖片,並且默認不顯示。如何顯示默認圖像?

這裏是SQL查詢代碼和CSS部分。

$query="INSERT INTO tbl_images (f_naam) VALUES ('$filename')"; 
if($result=mysql_query($query) or die ('query fout')){ 
?> 
<img src="data/<?php echo $filename; ?>" width="220" /> 
<?php }else{ ?> 
     <img src="http://www.istockphoto.com/file_thumbview_approve/12716227/2/istockphoto_12716227-close-up-of-a-cute-young-couple-smiling-togetherjpg" width="220" /> 
     </div> 
<?php } ?> 
+4

我不知道你在說什麼。 – 2011-05-31 12:33:41

+2

你已經說**如果**用戶沒有上傳任何圖像**然後**顯示默認值,並且還寫該用戶正在上傳圖像;然後明顯地顯示該圖像。哪裏有問題?? – diEcho 2011-05-31 12:38:18

+0

如果沒有圖像被用戶上傳,那麼第二部分後} else {應顯示,但它不顯示圖像www – Mary 2011-05-31 12:44:48

回答

1

我不知道這是否是問題,但我懷疑,即使$filename是空的,查詢將運行成功,你會進入試圖顯示上傳圖像的部分。因此,您可能需要對$filename進行檢查,並確保它在運行查詢之前有一些東西。

我可能會這樣做,但未經測試的代碼。

<?php 

    $picture_to_show = "http://www.istockphoto.com/file_thumbview_approve/12716227/2/istockphoto_12716227-close-up-of-a-cute-young-couple-smiling-togetherjpg"; 

    if($filename){ 
     $query="INSERT INTO tbl_images (f_naam) VALUES ('$filename')"; 
     if($result=mysql_query($query)){ 
      $picture_to_show = "data/".$filename; 
     } 
    } 

?> 
<img src="<?php echo $picture_to_show; ?>" width="220" /> 
+0

這是我真正想要的,但它只顯示默認圖像(該網址)數據庫中的一個不出現。你能幫助PLZ – Mary 2011-05-31 14:05:27

+0

heyyyyyyyyyyy薩維恩我知道了它的工作感謝很多 – Mary 2011-05-31 14:34:41

1

檢查,如果照片是在數據庫中可用(asuming,當沒有圖片上傳的DB返回NULL) 如果測試結果是真(!= NULL)顯示,畫面 其他(== NULL)秀默認

是同樣的問題還沒有回答? PHP If else statement that a database record is empty it will display a default picture

  • 謝謝我現在知道如何在本網站上搜索。我搜索的「默認圖片[PHP]」

的問題得到了編輯14秒之前,我貼我的答案 - 現在它顯示實際的代碼,它沒有前不

1

不知道這是問題,但你在這裏缺少一個左報價...的img src=

<img src=http://www.istockphoto.com/file_thumbview_approve/12716227/2/istockphoto_12716227-close-up-of-a-cute-young-couple-smiling-togetherjpg" width="220" />

1

後,你錯過了在src=屬性的開口雙引號默認圖像:

<img src=http://www.istockphoto.com/file_thumbview_approve/12716227/2/istockphoto_12716227-close-up-of-a-cute-young-couple-smiling-togetherjpg" width="220" /> 
    ----^^^---- 

應該

<img src="http://www.istockphoto.com/file_thumbview_approve/12716227/2/istockphoto_12716227-close-up-of-a-cute-young-couple-smiling-togetherjpg" width="220" /> 
1

您的邏輯需要一些改進。除非你的查詢是synactically錯誤或數據違反約束,否則mysql_query調用將始終返回NON-false。如果你想處理一個沒有文件被上傳的情況下,試試這個:

if ($_FILES['name_of_upload_field'] === UPLOAD_ERR_OK) { 
    ... insert into db ... 
    ... display uploaded image... 
} else { 
    ... there was no upload, or upload failed 
    ... display default image ... 
} 

簡單地做一個盲插件,並試圖檢查它是否失敗是不是要走的路。

假設您的示例中的$filename是從$ _FILES數組中提取的,那麼您的版本將始終嘗試顯示默認圖像。即使沒有文件被上傳,$filename會出來的空白,並插入查詢將

INSERT INTO tbl_images (f_naam) VALUES ('') 

這將送花兒給人成功。 mysql_query()將返回一個語句句柄,它不是假的,因此if()檢查成功,並且您嘗試顯示「上傳」的圖像。

1

行2 -

if($result=mysql_query($query) or die ('query fout')) 

覺得奇怪,我。條件是「查詢成功或我們終止腳本」意味着您不會觸發此條件的部分else - 條件滿足或腳本終止。

1

讓我開始說這個'答案'不是冒犯你的,但你在你的問題中寫的代碼有點亂。首先,你插入什麼?你從來沒有將$ filename設置爲任何值,因此插入沒有任何意義。

其次你正在做某種if-then-else語句,使用MySQL插入語句。這個insert語句總是返回'true',除非數據庫不可訪問或者查詢錯誤。發生這種情況是因爲如果插入失敗,MySQL INSERT語句只返回false。但是,即使是空插入(如果$ filename爲空)也會成功,從而顯示用戶試圖上傳的照片(可能不可用)。

如果查詢出錯了(MySQL注入或數據庫不可用),die()語句將超過您的情況。出於這個原因,你將永遠無法達到你的代碼的'else'語句 - 因此從不顯示默認圖像。

最後,腳本的HTML部分存在一些錯誤。確保在繼續處理此腳本之前解決這些問題。

正確的代碼應該是這個樣子:

<div class="filesize">JPG minimaal 800x60 pixels max. 2Mb</div> 
<a href="" class="submit" title="Upload" name="upload"><span>Upload</span></a> 
<div class="customerUploadPicture"> 

    <?php 
    $result = mysql_query("SELECT `f_naam` FROM tbl_images WHERE `f_user` = 'ID'"); 
    $data = mysql_fetch_array($result); 
    if($data['f_name'] != '') { 
    ?> 
     <img src="data/<?php echo $data['f_naam']; ?>" width="220" /> 
    <?php }else{ ?> 
    <img src="DEFAULT PHOTO" width="220" /> 
    <?php } ?> 

</div> 

如果你真的要上傳照片,請this TiZag tutorial

相關問題