2017-08-15 67 views
1

我有樣本數據庫Laravel SQL查詢

id |  Name  |  Email   |  Group 
1   John Doe  [email protected]    A 
2   Robert Chow [email protected]   B 
3   Lee Tee  [email protected]    C 

我使用自動完成(阿賈克斯搜索並顯示在表中的數據)

在我SearchController

這是我的代碼

if ($request->ajax()) { 
    $output = ""; 
    $orderinfo=DB::table('tb_client') 
     ->where('email','LIKE','%' .$request->search. '%') 
     ->orWhere('id','LIKE','%' .$request->search. '%') 
     ->orWhere('group','LIKE','%' .$request->search. '%') 
     ->get(); 
} 

我想過濾這隻有組(A) 應該列在我的HTML t能夠

因此,如果李某三通用戶搜索,它會顯示不屬於您的區域,

+0

如果要通過組過濾條款,那麼爲何不羣出現在您的'WHERE'子句中?請讓你的問題更清楚。 –

+0

請顯示您的HTML表單 –

回答

0

更改您的where子句:

$orderinfo = DB::table('tb_client') 
    ->where(function ($query) { 
     $query->where('email','LIKE','%' .$request->search. '%') 
       ->orWhere('id','LIKE','%' .$request->search. '%'); 
     }) 
    ->where('group', 'A') 
    ->get(); 

此外,我不建議使用像id字段!

+0

我在控制檯上得到錯誤500 –

+1

將第二行更改爲' - > where(function($ query)use($ request){' – apokryfos

+0

@apokryfos謝謝,謝謝大家 –

0

首先,更改id的「where」子句,因爲它會顯示不正確的結果。例如,如果您搜索1並且有高達100+的記錄,則所有這些結果都會顯示出來。

其次,對於您的查詢,您可以在其指定的地方像這樣

->where('group' , '=' , 'A')->get(); 
+0

謝謝你對你的建議感謝大家 –