我有3个字段在一个表单中,如果用户填写所有3显示从表中选择的值,如果填写2指定字段显示所有值


I have 3 fields in a form if the user fills all 3 display selected values from table and if fills 2 specified fields display all values

if($_POST['sinitial']=="no")
{
$result = mysqli_query($con,"SELECT * FROM babyname WHERE (iname= '".$_POST['dinitial']."' AND gender= '".$_POST['gender']."' AND ncat= '".$_POST['ncat']."') OR (iname= '".$_POST['dinitial']."' AND gender= '".$_POST['gender']."')");
?>

我试图从表babynames输出名称,如果用户输入所需的首字母>(首字母)和性别和名称类别(ncat)。但是如果用户不希望只有名字>进入一个特定的类别,他想查看所有的名字从>的首字母开始,那么我的查询应该怎么做呢?

else
{
$result = mysqli_query($con,"SELECT * FROM babyname WHERE (iname like '".$_POST['dinitial']."%' AND gender= '".$_POST['gender']."' AND ncat= '".$_POST['ncat']."') OR (iname like  '".$_POST['dinitial']."%' AND gender= '".$_POST['gender']."')");
}
if($_POST['sinitial']=="no")
{
 $condition = "iname= '".$_POST['dinitial']."' AND gender= '".$_POST['gender']."'";
if(isset($_POST['ncat']) && !empty($_POST['ncat'])) 
 $condition .= "AND ncat= '".$_POST['ncat']."'";
$result = mysqli_query($con,"SELECT * FROM babyname WHERE $condition");
}

让我们试试这种方式的代码…

if($_POST['sinitial']=="no")
{
  $condition = "iname= '".$_POST['dinitial']."' AND gender= '".$_POST['gender']."'";
  if(!empty($_POST['ncat'])) 
     $condition .= "AND ncat= '".$_POST['ncat']."'";
$result = mysqli_query($con,"SELECT * FROM babyname WHERE $condition");
}