2015-12-02 84 views
-2

我得到了一個joomla數據庫與一個字段有多個圖像路徑。我想分開這些路徑並使用json_decode讀取它們。但是,當我嘗試我的代碼的圖像源是空的(在這裏我想顯示的路徑)Json_decode顯示空值

我如何獲取數據,並使用json_decode:

$content   = "SELECT * FROM `snm_content` WHERE catid = 13"; 
$contentcon   = $conn->query($content); 
$contentcr   = array(); 
while ($contentcr[] = $contentcon->fetch_array()); 

$image = json_decode($content['images'], true); 

我有一個foreach內以下行:

<img src="'.$image['image_intro'].'" alt="" class="company_logo"> 

我在img src中沒有得到任何輸出。這是爲什麼?

我這是怎麼開始的foreach如果這是相關的:

foreach($contentcr as $content) 
    { 

$ contentcr的輸出:

" [6]=> string(1) "1" ["state"]=> string(1) "1" [7]=> string(2) "13" ["catid"]=> string(2) "13" [8]=> string(19) "2015-11-20 08:56:29" ["created"]=> string(19) "2015-11-20 08:56:29" [9]=> string(3) "361" ["created_by"]=> string(3) "361" [10]=> string(0) "" ["created_by_alias"]=> string(0) "" [11]=> string(19) "2015-11-30 11:00:10" ["modified"]=> string(19) "2015-11-30 11:00:10" [12]=> string(3) "361" ["modified_by"]=> string(3) "361" [13]=> string(3) "361" ["checked_out"]=> string(3) "361" [14]=> string(19) "2015-12-02 10:49:59" ["checked_out_time"]=> string(19) "2015-12-02 10:49:59" [15]=> string(19) "2015-11-20 08:56:29" ["publish_up"]=> string(19) "2015-11-20 08:56:29" [16]=> string(19) "0000-00-00 00:00:00" ["publish_down"]=> string(19) "0000-00-00 00:00:00" [17]=> string(209) "{"image_intro":"images\/mobieleairco\/Airco_blog.jpg","float_intro":"","image_intro_alt":"","image_intro_caption":"","image_fulltext":"","float_fulltext":"","image_fulltext_alt":"","image_fulltext_caption":""}" ["images"]=> string(209) "{"image_intro":"images\/mobieleairco\/Airco_blog.jpg","float_intro":"","image_intro_alt":"","image_intro_caption":"","image_fulltext":"","float_fulltext":"","image_fulltext_alt":"","image_fulltext_caption":""}" [18]=> string(121) "{"urla":false,"urlatext":"","targeta":"","urlb":false,"urlbtext":"","targetb":"","urlc":false,"urlctext":"","targetc":""}" ["urls"]=> string(121) "{"urla":false,"urlatext":"","targeta":"","urlb":false,"urlbtext":"","targetb":"","urlc":false,"urlctext":"","targetc":""}" [19]=> string(593) "{"show_title":"","link_titles":"","show_tags":"","show_intro":"","info_block_position":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_vote":"","show_hits":"","show_noauth":"","urls_position":"","alternative_readmore":"","article_layout":"","show_publishing_options":"","show_article_options":"","show_urls_images_backend":"","show_urls_images_frontend":""}" ["attribs"]=> string(593) "{"show_title":"","link_titles":"","show_tags":"","show_intro":"","info_block_position":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_vote":"","show_hits":"","show_noauth":"","urls_position":"","alternative_readmore":"","article_layout":"","show_publishing_options":"","show_article_options":"","show_urls_images_backend":"","show_urls_images_frontend":""}" [20]=> string(2) "14" ["version"]=> string(2) "14" [21]=> string(1) "3" ["ordering"]=> string(1) "3" [22]=> string(22) "€ 50 (vanaf 2 weken)" ["metakey"]=> string(22) "€ 50 (vanaf 2 weken)" [23]=> string(5) "Slang" ["metadesc"]=> string(5) "Slang" [24]=> string(1) "1" ["access"]=> string(1) "1" [25]=> string(1) "0" ["hits"]=> string(1) "0" [26]=> string(53) "{"robots":"","author":"","rights":"","xreference":""}" ["metadata"]=> string(53) "{"robots":"","author":"","rights":"","xreference":""}" [27]=> string(1) "0" ["featured"]=> string(1) "0" [28]=> string(1) "*" ["language"]=> string(1) "*" [29]=> string(0) "" ["xreference"]=> string(0) "" } [1]=> array(60) { [0]=> string(2) "10" ["id"]=> string(2) "10" [1]=> string(2) "69" ["asset_id"]=> string(2) "69" [2]=> string(16) "Aelia 12 (AL-12)" ["title"]=> string(16) "Aelia 12 (AL-12)" [3]=> string(14) "aelia-12-al-12" ["alias"]=> string(14) "aelia-12-al-12" [4]=> string(297) " 
+1

'$ content'「is」the query string,not an陣列。您將獲取的記錄分配給$ contentcr []。 – VolkerK

+0

好了,所以一個正確的行將是:'$ image = json_decode($ contentcr ['images'],true);'?這仍然返回空。 – twan

+0

嘗試var_dump()你的$ contentcr看看裏面有什麼 – jayxhj

回答

0

那裏混亂的問題,但答案是你在哪裏調用json_decode你的變量名在sql字符串上,不是行:

$sql = "SELECT * FROM `snm_content` WHERE catid = 13"; 
$result = $conn->query($content); 
while ($row = $result->fetch_array()){ 

    $image = json_decode($row['images'], true); 
    echo '<img src="'.$image['image_intro'].'" alt="" class="company_logo">'; 

} 
+0

這與我所做的基本相同,但不是使用$ contentcr使用$ content,如果我是正確的。我在foreach中獲得了更多信息,所以這不是我正在尋找的。所有的信息都是正確讀取的正確ID,所以這只是使用json_decode獲取圖像路徑的問題。 – twan

+0

@twan不,它不一樣。您的代碼構建了一個名爲'$ contentcr'的多維數組,其中包含多行,每行包含表中的每個字段(兩次)。你有沒有嘗試上面的代碼 – Steve

+0

是的,我添加了代碼,但它仍然顯示一個空的來源。 – twan