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来解决此问题。我可以更新我的问题。它没有返回任何结果