因为Sham写小程序时,需要在小程序端通过选择查询来从后端获取数据,由于有1个不同变量,想要通过1个mysql语句来实现,按以前,可能要写很多行if,else,今天Sham发现可以通过判断后拼接成数组,然后再转变成字符串来便捷实现,特此记录备忘。
以下面的为例,因为mysql查询时,多条件需要用过and连接,但是在无法判断是否有某个条件的时候,就得判断要不要加and了,这里是通过先往数组中push,然后再implode()来转变成用and连接的字符串,如果没有该条件时,也就不用加and了
$sql = "SELECT * FROM `mealorder`";
$sqls = [];
if($_POST['userid'] != '全部'){
array_push($sqls, "`userid` = '".$_POST['userid']."'");
}
if($_POST['mealstatus'] != '全部'){
array_push($sqls, "`status` = '".$_POST['mealstatus']."'");
}
if($_POST['mealtype'] != '全部'){
array_push($sqls,"`mealtype` = '".$_POST['mealtype']."'");
}
if($_POST['mealdate'] != '全部'){
array_push($sqls," `mealdate` = '".$_POST['mealdate']."'");
}
if(count($sqls)>0){
$sql .= 'where'.implode(' and ', $sqls);
}
$sql .= " order by `mealdate`,`id` DESC";
评论前必须登录!
注册