我的数据库中有学生详细信息。
php
firstname
lastname
DOB
gender
status (Active, Not Active)
fee_paid
我还有一个搜索表单,用于根据不同条件搜索学生的视图。
例如,我可能想要搜索这些内容 1.所有在1日至2日之间出生并且已支付x费用的女学生。 所有给阿里打电话的学生都支付了x笔费用。 3.所有未支付任何费用的活跃学生。
我的问题是,我如何简单地检查,如果设置了字段,则在查询中使用它,否则不要将其包含在查询中。同样对于DOB,搜索是按日期范围。
答案 0 :(得分:1)
使用isset()
和循环来编译SQL查询。查看这篇文章:
Search MySQL Database with Multiple Fields in a Form
答案 1 :(得分:0)
所以即使这个问题没有说明,它也标注在laravel中,所以这里是:
首先阅读where子句: https://laravel.com/docs/5.1/queries#where-clauses
接下来,我会做类似的事情(可能不起作用,psoudo代码)
1
$females = Model::whereBetween('DOB',array('2014-08-15','2014-08-18'))->where('fee_paid',100)->get(); //do something with $females
$ali = Model::Where(function ($query) { $query->where('votes', '>', 100) ->orWhere('title', '', 'Admin'); })->where('fee_paid',100);
3
$freebies = Model::where('status','active)->where('fee_paid',0)->get()
如果我完全符合你的要求,那就用不同的方式表达问题:)
答案 2 :(得分:0)
MySQL有一个AND子句。你可以这样说
$search = Ali;
SELECT * FROM registeredUsers WHERE username LIKE '%".$search."%' BETWEEN date1 AND date2 AND paid_fee = 4
继续快速搜索一些MySQL语句示例;你会找到一些非常酷的东西。