2012-01-09 71 views
1

我需要一些幫助,從我的數據庫返回的路徑中刪除一行。減少一些MYSQL結果。

「的ImagePath」 的數據庫中的回報/股/圖像/ GIF/XXX/XXXXXX /(XX是填料實際上是返回什麼)

結果我需要切斷「/股/圖片/ 「從ImagePath的結果,所以我只會得到/ Gif/XXX/XXXXXX/

原因是這個數據庫的實例是一種方式>從另一個服務器有一個不同的位置的圖像更新,所以我不我真的不想從數據庫中刪除這些行,因爲下一次更新它會回到另一個路徑,我只想從結果中刪除這些行。

<?php 

     define('INCLUDE_CHECK',1); 
     require "connect.php"; 
     require_once("class.php"); 

     mb_internal_encoding("UTF-8"); 

     // $product_id = intval($_GET['product']); //no default 
      $UPC = intval($_GET['upc']); //no default 


     $result = mysql_query("SELECT ImagePath, AlphaName, brand_name, FullName, ingredients FROM Images, Products WHERE ImageType='gif' AND images.ProductID = products.ProductID AND ViewCode='CF' AND products.UPC = '$UPC'"); 
     $count=mysql_affected_rows(); 

     $objJSON=new mysql2json(); 
     print(trim($objJSON->getJSON($result,$count))); 


      /* disconnect from the db */ 
      @mysql_close($link); 

     ?> 

回答

3

那麼你總是可以做substring

select substring(imagepath, 14) as ImagePath... 

或者replace,如果你的ImagePath值不都一樣:

select replace(imagepath, '/share/images/', '') as ImagePath... 
+0

對於'SUBSTRING()'示例+1。 – 2012-01-09 15:53:18

+0

謝謝,Substring工作完美! – KDM 2012-01-09 16:55:33

0

如果你想用PHP做使用可以str_replace()

$image = str_replace('/share/images/', '', $db_row['imagepath']); 

如果你想在MySQL中使用REPLACE()(我的建議)。

SELECT REPLACE(imagepath, '/share/images/', '') AS imagepath FROM table; 

注意:雖然會決心本身隨着時間的推移,它的直觀代碼中做到這一點。你應該直接更新你的記錄。特別是如果您的數據已從舊服務器配置遷移過來。修復源代碼。否則,你正在補丁。

+0

爲什麼你會使用replace而不是substr? – Eljakim 2012-01-09 15:50:26

+0

只是我想的習慣。在PHP中可能會更快,嗯...就SQL而言,'REPLACE()'在整個風格中更加通用。 – 2012-01-09 15:55:25

+0

@Jason McCreary – KDM 2012-01-09 15:55:35