【问题标题】:Query for search the records in Mysql查询查询Mysql中的记录
【发布时间】:2017-03-10 03:21:33
【问题描述】:

我有两个带有搜索按钮的选择框。在一个选择框中是fruit,第二个是car。 现在的问题是 1)如果有人从第一个选择框和第二个选择框中选择,则显示所有记录(意味着它将显示所有水果和汽车记录)。 2)如果有人只选择第一个选择框然后显示所有记录(意味着它将只显示水果记录)或 3)选择第二个选择框然后显示所有记录(意味着它将显示所有汽车记录)。

下面的查询,我试过它正在显示它正在为第一个问题工作

SELECT * FROM request WHERE fruit='$fruit' and car='$car'

我需要在单个查询中查询 2) 和 3)。你会在这方面帮助我吗?

【问题讨论】:

  • 你可以用 PHP 实现这个
  • 尝试使用条件语句检查复选框是否为'isset'。然后将操作添加到查询中。
  • SELECT * FROM request WHERE (isset($_POST['fruit']) ?fruit='$fruit' :fruit='') and (isset($_POST['car']) ? car='$car' : car='')
  • 如果 car 未设置,则会因为“and”而报错
  • 这就是为什么有一个速记条件语句

标签: php mysql


【解决方案1】:

为此,您需要开发一些逻辑 我猜是POST方法

   if(isset($_POST['search']))
{
$con =" 1=1 ";
if(!empty($_POST['fruit']) && !empty($_POST['car'])){
$con .=" and want_to_learn='".$_POST['fruit']."' and expert_in='".$_POST['car']."'";
}
else if(!empty($_POST['fruit'])){
$con .=" and want_to_learn='".$_POST['fruit']."'";
}
else if(!empty($_POST['car'])){
$con .=" and expert_in='".$_POST['car']."'";
}

$search_sql="SELECT * FROM request WHERE ".$con ;
$search_result = $conn->query($search_sql);
}

【讨论】:

  • 感谢 Mr.Knowledge 的回复,$con="1=1 and" 是什么?
  • 当你没有选择的值意味着如果任何条件不成立,你的查询将看起来像 SELECT * FROM request WHERE 1=1 所以它会带来表的所有数据。它仅适用于您不选择任何值
  • 没有,直到现在,我正在尝试了解如何使用此逻辑。
  • 您必须根据需要制作动态条件并将其放入查询中
  • Mr.Knowledge,我从希望中选择并单击搜索然后我收到错误:未定义索引:教
猜你喜欢
  • 1970-01-01
  • 2010-10-28
  • 1970-01-01
  • 2015-02-02
  • 2013-01-22
  • 1970-01-01
  • 1970-01-01
  • 2010-09-23
相关资源
最近更新 更多