Php DB::raw上的Laravel条件
我在项目中工作,我需要按距离(使用纬度和经度)订购我的广告。除此之外,我想让用户abl通过最大距离限制广告数量 例如:如果用户只想得到他旁边100英里范围内的广告,那么我订购了该广告,并将距离他不到100英里的广告退回给他 我已经做了一些工作,或者广告已经做好了,但我不知道如何继续Php DB::raw上的Laravel条件,php,mysql,laravel,latitude-longitude,Php,Mysql,Laravel,Latitude Longitude,我在项目中工作,我需要按距离(使用纬度和经度)订购我的广告。除此之外,我想让用户abl通过最大距离限制广告数量 例如:如果用户只想得到他旁边100英里范围内的广告,那么我订购了该广告,并将距离他不到100英里的广告退回给他 我已经做了一些工作,或者广告已经做好了,但我不知道如何继续 public function get_searched(Request $request){ $annonce=DB::table("annonces") ->where('n
public function get_searched(Request $request){
$annonce=DB::table("annonces")
->where('nomAnnonce','like','%'.$request->input("nomAnnonce").'%')
->orderBy(
DB::raw('3959 * acos( cos( radians('.$request->input("lat").') ) * cos( radians( latitude ) ) * cos( radians( longitude ) - radians(-'.$request->input("lon").') ) + sin( radians('.$request->input("lat").') ) * sin(radians(latitude)) )')
,'desc')
->get();
echo $annonce;
}
如果有人能帮我找出限制最大距离和thnx的原因,请使用以下方法:
$annonce = DB::table("annonces")
->select('annonces.*')
->selectRaw('3959 * acos( cos( radians(?) ) * cos( radians( latitude ) ) * cos( radians( longitude ) - radians(-?) ) + sin( radians(?) ) * sin(radians(latitude))) distance',
[$request->input('lat'), $request->input('lon'), $request->input('lat')])
->where('nomAnnonce', 'like', '%'.$request->input("nomAnnonce").'%')
->orderBy('distance', 'desc')
->having('distance', '<=', $request->input('max'))
->get();
$annonce=DB::table(“annonces”)
->选择('annonces.*')
->选择原始('3959*acos(cos(radians(?))*cos(radians(latitude))*cos(radians(经度)-弧度(-))+正弦(radians(?)*sin(radians(latitude)))距离',
[$request->input('lat'),$request->input('lon'),$request->input('lat'))
->其中('nomannone'、'like'、'%'。$request->input('nomannone').%)
->orderBy('distance','desc')
->有('distance'),在未进行类型转换的情况下,不要直接在原始表达式中使用请求输入。这完全会使注入保护无效。什么是“100 mils”或“100 mills”?可能是“100 miles”?表中有多少行?您好,先生,它确实有效,但它只返回距离,但如果您能提供更多帮助,我需要获取所有值。这是我输入值[{“距离”:189.36192877229}]时得到的结果。我的错误,我修复了答案。