我正在尝试设置几个elseif
语句,以查看某些输入字段是否为空。这些输入字段的值声明为$ date1和$ date 2.如果这些字段不为空,则MySQL查询将选择介于这两个日期之间的所有数据。
具体来说,我遇到了病情。这就是我到目前为止所做的:
$keyword = esc_sql($_GET['keyword']);
$date1 = esc_sql($_GET['date1']);
$date2 = esc_sql($_GET['date2']);
$sql = "SELECT * FROM tablename WHERE ";
if(!empty($keyword)){
$sql .= " name LIKE '%$keyword%'";
}
elseif(!empty($date1)){
$sql .= " introDate = '$dateIntro1'";
}
elseif (!empty($date1) && !empty($date2)) {
sql .= " introDate BETWEEN '$date1' AND '$date2'"
}
但是,elseif
条件似乎不起作用,因为当我添加SQL查询时,我没有得到任何结果。我已经测试了SQL查询,它工作正常。我可能会缺少什么?
答案 0 :(得分:-2)
$
之前缺少date2
,更新为:
SELECT * FROM `tablename` WHERE date BETWEEN '$date1' AND '$date2'
当然,您需要将查询发送到数据库,例如mysqli_query
或您使用的任何驱动程序。
如果变量来自用户输入,请注意SQL注入。相反,通常使用变量绑定。