2014-04-17 103 views
1

與下面的距離查詢從MySQL檢索$competitors成功後...檢索對象的數據在PHP

$competitors = DB::table('homes') 
    -> select(array('*', DB::raw('SQRT(POW('.$Eastings.' - `Eastings`,2) + POW('.$Northings.' - `Northings`,2)) AS distance'))) 
    -> having('distance', '<', $micromarket_size) 
    -> get(); 

...我想找回我找回數據,特別是如果,費用和佔用參數。我試圖做這樣的事情來訪問數據:

$competitors->id[2]; 

但得到的錯誤:

foreach ($competitors as $competitor) { 
    $i=0; 
    $id[$i]   = $competitor->id; 
    $fees[$i]   = $competitor->minSingleCareFee; 
    $occupancy[$i] = $competitor->Average_Occupancy; 
    $i = $i + 1; 
}; 

然後再試試:

Trying to get property of non-object

我當時以爲我將通過所有的競爭對手環如下:

echo $id[2]; 

但我仍然遇到錯誤。任何幫助感謝!

+0

'$ competitors-> ID [2];'沒有道理。從數據庫中你得到一個字符串或數字 - 而不是一個數組。那麼'$ id [2]'呢?你確定你的回報裏有'id = 2'嗎? – Kasyx

回答

0

試試這個

echo '<pre>'; 
var_dump($competitors); 
echo '</pre>'; 

$queries = DB::getQueryLog(); 
$last_query = end($queries); 
echo $last_query; 
die(); 

,並運行在phpMyAdmin SQL查詢或任何其它

0

編輯:

所以我想通了,我可以簡單地通過去$competitors[i]->id,而不是$competitors->id[i]訪問性能;

感謝您的幫助!

0

在你的榜樣,$competitors是一個集合,所以你可以循環像這樣:

foreach($competitors as $competitor) { 
    echo $competitor->id; // use other properties like same way 
}