简体   繁体   English

PHP高级搜索-多个参数

[英]PHP Advanced search - multiple parameters

I'm working on a advanced search function: 我正在使用高级搜索功能:

$colname_SokvansterImp = "-1"; 

mysql_select_db($database_Audiologiska, $Audiologiska);
if (isset($_POST['Personnummer_search'])) 
{   
    //Visa bara det som söks
     $searchword = $_POST['Personnummer_search'];
    $query_SokvansterImp = "SELECT * FROM patient left join person on person.Personnummer = patient.Patient left join vanster_implantat on vanster_implantat.Patv = patient.Patient WHERE vanster_implantat.patv LIKE '%".$searchword."%'";

}
else//Visa all data
{

    $query_SokvansterImp = "select * from patient left join person on person.Personnummer = patient.Patient left join vanster_implantat on vanster_implantat.patv = patient.Patient";

}
$SokvansterImp = mysql_query($query_SokvansterImp, $Audiologiska) or die(mysql_error());
$row_SokvansterImp = mysql_fetch_assoc($SokvansterImp);
$totalRows_SokvansterImp = mysql_num_rows($SokvansterImp);

This is working for searching with one parameters, however, I'm wondering how to make it accepts multiple parameters? 这适用于使用一个参数进行搜索,但是,我想知道如何使其接受多个参数? "Personnummer_search" is the name of my field. “ Personnummer_search”是我的字段的名称。 How can I make so it can search for example Name and/or Surname? 我该如何做才能搜索姓名和/或姓氏? I'm using Dreamweaver 我正在使用Dreamweaver

Add a new conditional block ? 添加新的条件块?

if (isset($_POST['Personnummer_search'])) 
{   
    //Visa bara det som söks
     $searchword = mysqli_real_escape_string($_POST['Personnummer_search']);
    $query_SokvansterImp = "SELECT * FROM patient left join person on person.Personnummer = patient.Patient left join vanster_implantat on vanster_implantat.Patv = patient.Patient WHERE vanster_implantat.patv LIKE '%".$searchword."%'";

}
else if(isset($_POST['Name_search']) && isset($_POST['Surname_search']))
{
    $name = mysqli_real_escape_string($_POST['Name_search']);
    $surname = mysqli_real_escape_string(($_POST['Surname_search']);
    $query_SokvansterImp = "YOUR SQL QUERY...";

}
else//Visa all data
{
    $query_SokvansterImp = "select * from patient left join person on person.Personnummer = patient.Patient left join vanster_implantat on vanster_implantat.patv = patient.Patient";
}

Ok, to search for all possible filters, you can do: 好的,要搜索所有可能的过滤器,您可以执行以下操作:

$where = array();

if (isset($_POST['Personnummer_search'])) 
{   
    $searchword = mysqli_real_escape_string($_POST['Personnummer_search']);
    $where[] =  "vanster_implantat.patv LIKE '%".$searchword."%'";
}

if(isset($_POST['Name_search']))
{
    $name = mysqli_real_escape_string($_POST['Name_search']);
    $where[] =  "nameField LIKE '%".$name."%'";

}

if(isset($_POST['Surname_search']))
{
    $surname = mysqli_real_escape_string($_POST['Name_search']);
    $where[] =  "surnameField LIKE '%".$surname."%'";

}

if(count($where))
{
   $query_SokvansterImp = "SELECT * FROM patient left join person on person.Personnummer = patient.Patient
    left join vanster_implantat on vanster_implantat.Patv = patient.Patient
     WHERE ".implode(" AND ",$where);
}
else//Visa all data
{
    $query_SokvansterImp = "select * from patient left join person on person.Personnummer = patient.Patient left join vanster_implantat on vanster_implantat.patv = patient.Patient";
}

Check out the PHP Site, There is a function called "func_get_args" 查看PHP网站,其中有一个名为“ func_get_args”的函数

http://php.net/manual/en/function.func-get-args.php http://php.net/manual/en/function.func-get-args.php

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM