PHP laravel查询数据库每1分钟

时间:2016-02-12 12:14:44

标签: javascript php mysql laravel

我想每1分钟在我的项目中查询一个mysql表。我使用javascript setInterval 方法进行计时,使用ajax发送请求并接收输出为html。但它有很多问题: 1-整个网站只为执行此操作而变得非常缓慢。 2-这样我就无法从数据库中查询其他内容。 我的代码是:

 function ajaxGetAllOrders(){
$.ajax('<?php echo url()?>/admin/getAllOrders',{
  dataType:'json',
  async: true,
  success:function(data){
    $('#page-content').html(data.content);
  }
  });
}

和区间方法:

 $(function(){
   setInterval('ajaxGetAllOrders();',60000);
   ajaxGetAllOrders();
});

我尝试为此创建另一个与数据库的连接,但无论如何它都不会有用。

和php getAllOrders方法:

public function getAllOrders(){
    if (!$this->isAdmin()){
        return;
    }
    $fields = DB::connection('mysql2')->table('z_orders')->orderBy('id','desc')->get();
    $nFields = DB::connection('mysql2')->table('z_food_orders')->orderBy('id','desc')->get();
    $count=0;
    $i=1;
    if (count($fields)>0){
        foreach($fields as $field){
            $userid = DB::connection('mysql2')->table('z_users')->whereId($field->user_id)->first();
            $data['username']=$userid->name;
            $data['address'] = $userid->address;
            $orderId = DB::connection('mysql2')->table('z_food_orders')->whereOrderId($field->id)->first();
            $foodId = DB::connection('mysql2')->table('z_foods')->whereId($orderId->food_id)->first();
            $data['foodname'] =$foodId->title;
            $data['foodcount'] = $orderId->foodcount;
            $foodPrice = $foodId->price;
            $count += $foodPrice * $orderId->foodcount;
            $i++;
        }
        $cid = DB::connection('mysql2')->table('z_users')->whereId($userid->id)->first();
        $data['customer_id'] = $cid->cctt;
        $data['price']=$count;
        $data['fields']=$nFields;
    }
    return response()->json(['content'=>view('admin.orders',$data)->render()]);
}

这背后的整个想法是用户订单的东西。然后在管理面板的订单部分管理员可以看到所有订单。所以我希望管理员能够重新加载页面,并且每分钟订单列表都会显示新订单。

0 个答案:

没有答案