2014-04-17 62 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 
}