簡體   English   中英

使用PHP從SQL查詢中獲取特定的JSON數據

[英]Get specific JSON data from sql query using PHP

我要說謝謝您閱讀這個問題。

我的問題是。 我有這個PHP代碼與SQL查詢:

mysql_connect($mysql_server, $mysql_login, $mysql_password);
mysql_select_db($mysql_database);

$req = "SELECT name, elements "
."FROM lwzax_zoo_item "
."WHERE application_id = '2' AND elements LIKE '%".$_REQUEST['term']."%' ";

$query = mysql_query($req);

while($row = mysql_fetch_array($query))
{
    $results[] = array('label' => $row['name'], 'desc' => $row['elements']);
}


$json = json_encode($results);
echo $json;

輸出為:

[  
 {  
  "label":"0146T",
  "desc":" {\n\t\"cec36dd6-ffde-494d-b25c-8e58bff84e22\": {\n\t\t\"0\":        {\n\t\t\t\"value\": \"Ccta W\\/Wo Dye\"\n\t\t}\n\t}\n}"
 },
 {  
  "label":"64653",
  "desc":" {\n\t\"cec36dd6-ffde-494d-b25c-8e58bff84e22\": {\n\t\t\"0\": {\n\t\t\t\"value\": \"Chemodenervation Eccrine Glands Oth Area Per Day\"\n\t\t}\n\t}\n}"
 }
]

但是我只需要標簽數據和值數據...所以它看起來應該像這樣:

[  
 {  
  "label":"0146T",
  "desc":"Ccta W\\/Wo Dye"
 },
 {  
  "label":"64653",
  "desc":"Chemodenervation Eccrine Glands Oth Area Per Day"
 }
]

請你幫助我好嗎? 非常感謝您的幫助

更新:刪除$ b = json_decode($ row ['desc'],true); 沒用過,只是我所有成功的嘗試中的一個垃圾。

您正在解碼JSON並將其分配給$b ,但是您沒有對該變量執行任何操作。 采用:

    $results[] = array('label' => $row['name'],
                       'desc' => $b['cec36dd6-ffde-494d-b25c-8e58bff84e22'][0]['value']);

另外,您需要給json_decode提供第二個參數,這樣它將返回一個關聯數組而不是對象。

$b = json_decode($row['elements'], true);

好吧,首先,首先,在循環之外初始化數組。

while($row = mysql_fetch_array($query))
{
    $b = json_decode($row['elements']);
    $results[] = array('label' => $row['name'], 'desc' => $row['elements']);
}

然后,您可能應該這樣做:

$results = array();
while($row = mysql_fetch_array($query))
{
    $b = json_decode($row['elements']);
    array_push($results, array('label' => $row['name'], 'desc' => json_decode($row['elements'], true));
}

最后

$json = json_encode($results);
echo $json;

看看是否有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM