thinkphp多个字段用where模糊查询时出错

前端Image
后台Image
thinkphp下,有两个输入内容,一个是根据时间段模糊查询,另一个是关键字模糊查询。但是很奇怪,后台的第一个where($map1)怎么也不起作用,搞不懂为什么,大神们能帮下忙吗?谢谢了!

阅读 4.3k
3 个回答

文档应该没哪个地方说了where是累加的吧?
where应该是设置条件, 后一个把前一个覆盖了.完全可以只用一个map数组
框架提供了I函数,就用I来获取值

$keyword = I("keyword", "");
$start = I("start_time", "");
$end = I("end_time", "");
$map = [
    "content" => ["like", "%{$keyword}%"]
];
if($start) {
    $map["add_time"][] = ["gt", $start];
}
if($end) {
    $map["add_time"][] = ["lt", $end];
}

TP好久没用过了, 不概逻辑是这样子

getLastSql();打印sql语句,到MySQL执行,查看结果。

如楼上所说,用M()->getLastSql()打印sql语句出来看看。
另外,如果问的是thinkphp,请务必说明清楚tp的版本。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进