2014-11-04 49 views
0

我在php中創建了一個用於從mySQL DB獲取數據並返回JSON的WebService。null時替換數組的值

所以,我需要的是,每當我的數據庫有null value,這個值就會變成白色(= " ")。

我這樣做的方式,但沒有成功(看最後foreach):

<?php 

header("Content-Type: application/json; charset=utf-8;"); 

include('connectdb.php'); 

$something = $_GET['cod']; 
$sqlcode = mysql_query("Select descricao, cliente, local from terminal_cartao Where  descricao='$something'"); 
$sqlcode2 = mysql_query("Select descricao, cliente, local from terminal_cartao"); 

$jsonObj= array(); 

if($something == 'all') 
{ 

while($result=mysql_fetch_object($sqlcode2)) 
{ 
$jsonObj[] = $result; 
} 

} 

else{ 
while($result=mysql_fetch_object($sqlcode)) 
{ 
$jsonObj[] = $result; 
} 
} 

foreach ($jsonObj as $key => $value) { 
if ($value === null) { 
    $jsonObj[$key] = ""; 
} 
} 

$final_res =json_encode($jsonObj); 
echo $final_res; 
exit; 
+0

'的var_dump($值) '在foreach裏面並仔細檢查它的返回情況。在問題之外,請重構您的代碼。 – gvgvgvijayan 2014-11-04 10:26:10

回答

1
foreach ($jsonObj as $key => $value) { 
    $value = get_object_vars($value); 
    foreach($value as $key2 => $value2) { 
    if ($value2 === null) { 
     $jsonObj[$key]->$key2 = ""; 
    } 
    } 
} 
0

代碼波紋管,我現在工作得很好:

foreach ($jsonObj as $k1 => $row) { 
foreach ($row as $k2 => $value) { 
    if ($value === null) { 
     $jsonObj[$k1]->$k2 = ""; 
    } 
} 
}