Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP高级搜索-多参数_Php_Html_Mysql_Sql - Fatal编程技术网

PHP高级搜索-多参数

PHP高级搜索-多参数,php,html,mysql,sql,Php,Html,Mysql,Sql,我正在开发一个高级搜索功能: $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_Sokvanst

我正在开发一个高级搜索功能:

$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);

这适用于使用一个参数进行搜索,但是,我想知道如何使它接受多个参数?“Personnummer\u search”是我所在领域的名称。我如何使其能够搜索例如姓名和/或姓氏?我正在使用Dreamweaver添加新的条件块

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";
}

好的,要搜索所有可能的筛选器,您可以执行以下操作:

$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";
}

查看PHP站点,有一个名为“func_get_args”的函数


好吧,那就用$mysqli->real\u escape\u string()。。。我不认为问题是关于这个…我想我有点偏见。不,你是对的。。。只是没有考虑到这一点。我正在编辑答案:)如果我的问题不清楚,我很抱歉,但您的解决方案将不起作用,因为我希望它能够搜索一个或多个参数,并且您的“if,else if语句”将只运行一个查询,而不是两个查询。Dreamweaver与问题无关。我正在使用Dreamweaver来解决此问题。我可以更新我的问题。它没有返回任何结果