2011-11-18 97 views
1

我有一個搜索查詢作爲如何從此json對象中刪除逗號?

$sql="SELECT user_id,user_name,user_occupation FROM profile WHERE user_email LIKE '%peace%'"; 

$result=mysql_query($sql); 
$jsonResult = '{"results" : [ '; 
while ($data=mysql_fetch_assoc($result)) 
{ 
$jsonResult .=json_encode($data).','; 
} 
$jsonResult .= ']}'; 

echo $jsonResult; 

How to remove last comma (,) from array?後,我加入

$sql="SELECT user_id,user_name,user_occupation FROM profile WHERE user_email LIKE '%peace%'"; 

$result=mysql_query($sql); 
$jsonResult = '{"results" : [ '; 
while ($data=mysql_fetch_assoc($result)) 
{ 
$jsonResult .=json_encode($data).','; 
} 
$jsonResult .= ']}'; 

$finalResult = rtrim(',',$jsonResult); 
echo $finalResult; 

這給了我一個輸出...

{"results" : [ {"user_id":"2","user_name":"peace","user_occupation":"Web Developer"}, 
       {"user_id":"3","user_name":"lover","user_occupation":"Web Developer"} 
       {"user_id":"4","user_name":"User4","user_occupation":"Developer"}, 
       {"user_id":"5","user_name":"User5","user_occupation":"Developer"},]} 

我想刪除最後逗號從結果數組

+1

當你遍歷你的結果,而不是附加到JSON字符串,將結果添加到數組。然後當你完成迭代時,通過'json_encode'將該數組轉換爲json。您可以通過這種方式避免任何JSON語法問題。 – cheeken

回答

2

做這樣

$result=mysql_query($sql); 
$jsonResult = '{"results" : [ '; 
$i=0; 
while ($data=mysql_fetch_assoc($result)) { 
    if($i != 0){ 
     $jsonResult .=','; 
    } 
    $jsonResult .=json_encode($data); 
    i++; 
} 
$jsonResult .= ']}'; 
+0

謝謝Selva Kumar 它的工作就像魅力..... –

5

而不是建設循環內的一個字符串,而是填充一個數組,每個元素都是結果集中的單個關聯數組(行)。然後,在循環之後,只需簡單地json_encode你已經構建的數組。

+0

...和爆炸,如果cheeken沒有設法輸入,比我更快。 :) – Christopher

+0

不用擔心,看起來你贏得了比賽! :) – cheeken

+0

感謝您的快速回答。但我發現@selvakumar答案有幫助。儘管你用最好的邏輯提醒我... –

1

rtrim()從字符串末尾刪除字符。正如您添加了]},逗號不再是結尾。

將最後一部分前修剪逗號:

$finalResult = rtrim(',',$jsonResult); 
$finalResult .= ']}'; 

雖然,正如克里斯托弗說,這不是手工創建一個JSON字符串一個很好的主意。

0

ü可以嘗試像從傳入的結果填充一些數組,然後只是JSON編碼陣列像

..push result row arrays to $result .. 
$data = array('results' => $results); 
json_encode($data); 
0
$sql="SELECT user_id,user_name,user_occupation FROM profile WHERE user_email LIKE '%peace%'"; 

$result=mysql_query($sql); 
$jsonResult = '{"results" : [ '; 
$counter = 1; 
while ($data=mysql_fetch_assoc($result)) 
{ 
if($counter!=1) 
{ 
$jsonResult .= ','.json_encode($data); 
} 
else 
{ 
$jsonResult .=json_encode($data); 
} 
$counter++; 
} 
$jsonResult .= ']}'; 
$finalResult = rtrim(',',$jsonResult); 
echo $finalResult;