【发布时间】:2017-08-22 22:31:24
【问题描述】:
我有两个数组
temp[]
time[]
例如,如果我的数组中有类似这样的数据
temp time
[0] 80 45
[1] 70 50
[2] 85 65
[3] 90 30
我想根据这两个数组参数查询数据 比如 (select * from MyTable where (temperature = 80 and time = 45 )) for next (select * from MyTable where (temperature = 70 and time = 50)) 等等
我正在做这样的事情
$mix=MyTable::whereIN('temperature', $temp)
->whereIN('time', $time)->where('category',$cat)
->get();
但它让我感到高兴的输出是这两个参数的组合。不完全是从数组 0 到以后...
我希望我正确地解释了我的问题..
我试过这个..
$result=Ergebnisse::where('name_id', $nam)->where('geometrie_id', $geo)->get();
foreach ($result as $key => $res) {
$mix=Ergebnisse::where('temperatur', $res->temperatur)
->where('zeit', $res->zeit)->groupBy('katogorie_id')
->get();
}
当 i dd($mix) 只显示一个结果。但根据我的数据库,它应该显示不止一个
【问题讨论】:
-
你能试试 foreach 循环吗?使用 foreach 循环遍历两个数组,然后使用以下值进行查询: $mix=MyTable::where('temperature', $temp)->where('time', $time)->where('类别',$cat)->first();
-
只显示一个结果是行不通的
-
一个结果?您能否更新问题以包含您尝试过的新代码?
-
$mix[] = Ergebnisse::where('temperatur', $res->temperatur) ->where('zeit', $res->zeit)->groupBy('katogorie_id') ->get();
-
$mix = Ergebnisse::where('katogorie_id', $kat) ->where(function($q) use($result) { foreach ($result as $item) { $q- >orWhere(function($q) use($item) { $q->where('temperatur', $item->temperatur) ->where('zeit', $item->zeit); }); } } )->groupBy('name_id')->get();我在@Alexey Mezenin 的帮助下解决了这个问题