这是我遇到的最新问题。我正在尝试将搜索功能应用到我的应用程序中,并且我知道如何在表格中搜索where('firstname', 'LIKE', %$search%)
等关键字。但是,我将如何根据用户指定的标准缩小搜索范围。为exlample搜索$ keyword,还有$ city和$ pricePoint。
我只是试图弄清楚如何在php中构建查询,以便如果用户指定$关键字和它搜索的城市,如果用户只指定$关键字,那么城市方面的查询不存在。
Project是基于Laravel 5.2和mysql数据库构建的。任何帮助表示赞赏。
答案 0 :(得分:3)
假设有3个条件:$ keyword,$ city和$ pricePoint。你可以这样做:
$query = DB::table('users');
if (!empty($keyword)) {
$query = $query->where('keyword', 'LIKE', '%'.$keyword.'%');
}
if (!empty($city)) {
$query = $query->where('city', 'LIKE', '%'.$city.'%');
}
if (!empty($pricePoint)) {
$query = $query->where('pricePoint', 'LIKE', '%'.$pricePoint.'%');
}
$results = $query->get();
然后你可以做一些更通用的东西,做一个标准列表并用循环迭代它们而不是添加另一个if条件。