Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php DB::raw上的Laravel条件_Php_Mysql_Laravel_Latitude Longitude - Fatal编程技术网

Php DB::raw上的Laravel条件

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

我在项目中工作,我需要按距离(使用纬度和经度)订购我的广告。除此之外,我想让用户abl通过最大距离限制广告数量 例如:如果用户只想得到他旁边100英里范围内的广告,那么我订购了该广告,并将距离他不到100英里的广告退回给他 我已经做了一些工作,或者广告已经做好了,但我不知道如何继续

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}]时得到的结果。我的错误,我修复了答案。