2017-03-10 77 views
1

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

下面的查询,我想它会显示它正在为第一期

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

我需要2查询)和3)单一的查询。你能帮我吗?

+1

你可以做到这一点用PHP – Kasnady

+0

尝试使用条件语句来检查,如果复选框“isset”。然后将该操作添加到查询中。 – Jhay

+0

SELECT * FROM request WHERE(isset($ _ POST ['fruit'])?fruit ='$ fruit':fruit ='')and(isset($ _ POST ['car'])?car ='$ car':汽车='') – Jhay

回答

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); 
} 
+0

感谢您回答Mr.Knowledge,什么是$ con =“1 = 1和”? –

+0

它是当你没有选定的值意味着如果任何条件不成立,你的查询将看起来像SELECT * FROM request WHERE 1 = 1,所以它会带来表的所有数据。它只适用于如果你没有选择任何值 –

+0

它适合你吗? –