2014-02-20 103 views
0

我有以下問題。在管理面板中,我有多個圖片庫。用戶可以選擇多個圖片並保存。該數據在DB正在播放如下:獲取陣列中的具體位置

<br />::nossos_trabalhos_galeria_x::3::/nossos_trabalhos_galeria_x::<br /><br />::nossos_trabalhos_galeria|0|nossos_trabalhos_galeria_x::images/nossos_trabalhos/53/lighthouse.jpg::/nossos_trabalhos_galeria|0|nossos_trabalhos_galeria_x::<br />::nossos_trabalhos_galeria|1|nossos_trabalhos_galeria_x::images/nossos_trabalhos/53/penguins.jpg::/nossos_trabalhos_galeria|1|nossos_trabalhos_galeria_x::<br />::nossos_trabalhos_galeria|2|nossos_trabalhos_galeria_x::images/nossos_trabalhos/53/koala.jpg::/nossos_trabalhos_galeria|2|nossos_trabalhos_galeria_x::<br /> 

所以,做一個「選擇」抓住了結果:

$db = &JFactory::getDBO(); 

$table = '#__cck_store_form_nossos_trabalhos'; 

$select_query = "SELECT nossos_trabalhos_galeria_x FROM $table"; 

$db->setQuery($select_query); 

$db->query(); 

$row = $db->loadRow(); 

但是所有的事情對我來說是圖像路徑。然後,我可以用「爆炸」分開他的位置:

$r1 = explode('::',$row[0]); 
var_dump($r1); 

所以我得到的結果是:

array (size=17) 
    0 => string '<br />' (length=6) 
    1 => string 'nossos_trabalhos_galeria_x' (length=26) 
    2 => string '3' (length=1) 
    3 => string '/nossos_trabalhos_galeria_x' (length=27) 
    4 => string '<br /><br />' (length=12) 
    5 => string 'nossos_trabalhos_galeria|0|nossos_trabalhos_galeria_x' (length=53) 
    6 => string 'images/nossos_trabalhos/53/lighthouse.jpg' (length=41) 
    7 => string '/nossos_trabalhos_galeria|0|nossos_trabalhos_galeria_x' (length=54) 
    8 => string '<br />' (length=6) 
    9 => string 'nossos_trabalhos_galeria|1|nossos_trabalhos_galeria_x' (length=53) 
    10 => string 'images/nossos_trabalhos/53/penguins.jpg' (length=39) 
    11 => string '/nossos_trabalhos_galeria|1|nossos_trabalhos_galeria_x' (length=54) 
    12 => string '<br />' (length=6) 
    13 => string 'nossos_trabalhos_galeria|2|nossos_trabalhos_galeria_x' (length=53) 
    14 => string 'images/nossos_trabalhos/53/koala.jpg' (length=36) 
    15 => string '/nossos_trabalhos_galeria|2|nossos_trabalhos_galeria_x' (length=54) 
    16 => string '<br />' (length=6) 

我最大的問題是,我如何才能在陣列中的圖像路徑來創建一個畫廊?

----- -----編輯

感謝您的答覆。以非常簡單的方式解決了我的問題。我通過名爲joomla'getValue'的選項調用了相同的結果,他將數據stdClass中的所有數據都帶給我。然後,這隻夠做一個foreach並稱之爲職位。

+0

您是否將實際文件路徑保存在數據庫中?它們都是相同的文件類型嗎? – Chitowns24

+0

http://en.wikipedia.org/wiki/Database_normalization –

+0

是的,joomla保存所有路徑。是的,它們是同一類型的。 –

回答

0

您將不得不使用正則表達式來檢查給定項是否爲圖像URL。如果是,那麼將它添加到一個新的數組或做一些事情。

0

如果有多個類型的圖像的話,可以用下面的代碼來提取圖像網址:

$ext = array("jpg","jpeg","png","gif"); 

$gallery_url = array_filter(array_map(function($var) use($ext){return in_array(end(explode(".", $var)),$ext)?$var:false;}, $r1)); 
print_r($gallery_url); 

gallery_url是僅具有圖像網址

EDIT的數組:如果圖像是相同類型,那麼:

$gallery_url = array_filter(array_map(function($var){return end(explode(".", $var))=='jpg'?$var:false; },$r1));