2015-05-11 87 views
0

直升機,我有我的JSON問題最後一個記錄,我有在一個foreach一個foreach一對......不要問爲什麼PHP JSON的foreach僅返回

我的問題是,只有在foreach foreach($result2 as $rowx)返回最後一條記錄。該查詢是好的工作正常,它返回從數據庫的2個字段,但只有最後一個回顯。

請任何幫助。

if(!$location){ 
    echo '{"locations":['; 
    $query = $db->prepare("SELECT * FROM locations"); 
    $query->execute(); 
    $result = $query -> fetchAll(); 
    $num_rows = count($result); 
      for ($x = 1; $x < $num_rows; $x++) { 
    foreach($result as $row) { 
    $qer = "SELECT DISTINCT t.id_temp,f.id_fridge,l.id_location,t.id_sensor,f.denumire AS 'fridge_name',l.name AS 'location_name',l.address AS 'location_address',t.date,t.time,t.temp FROM fridges AS f,locations AS l,temperature AS t WHERE f.fk_location=l.id_location AND f.fk_id_sensor=t.id_sensor AND l.id_location='1' AND t.date='07/05/2015' ORDER BY t.id_temp DESC LIMIT 0,2"; 

    $query2 = $db->prepare($qer); 
    $query2->execute(); 
    $result2 = $query2 -> fetchAll(); 



    echo '{"location_name":"'.$row[1].'","nr_fridges":'.$row[2].',"fridge":'; 
    foreach($result2 as $rowx) { 

    } 
    echo '{ 
    '.$rowx['fridge_name'].' 

    }'; 

    echo '}'; 

    } 
     echo "]}"; 
    exit; 
    } 
    } 
+0

檢查在json_encode功能,它將使調試真是站着,因爲這樣一來,實在是很難可讀 – xNeyte

+0

什麼是空的foreach的目的(最內側的一個)? – MilanG

回答

2

您在環路外有echo es。

foreach($result2 as $rowx) { 
    echo '{ 
     '.$rowx['fridge_name'].' 
    }'; 

    echo '}'; 
} 

echo "]}"; 
0

你的問題可能是由一個事實,即你正在使用$rowx['fridge_name']的循環,而不是裏面的原因造成的:

foreach($result2 as $rowx) { 

} 
echo '{ 
'.$rowx['fridge_name'].' 

}'; 

應該是:

foreach($result2 as $rowx) { 
    echo '{ 
    '.$rowx['fridge_name'].' 
    }'; 
} 

還要注意,現在你不會構建有效的json,因爲對象需要一個鍵值對,其中字符串值用雙引號引起來"

但是,你不應該建立JSON手動反正不是你應該建立你所需要的一種形式的數組,並在最後你做:

echo json_encode($your_array); 
0
foreach($result2 as $rowx) { //foreach begin 

    } //foreach end 

echoforeach循環外。

試試這個,

foreach($result2 as $rowx) { 
    echo '{ 
    '.$rowx['fridge_name'].' 
    }'; 
}