Я работаю над расширенной функцией поиска:
$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_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"; }
Проверьте сайт PHP, существует функция под названием «func_get_args»,
Итак, для поиска всех возможных фильтров вы можете:
$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"; }