1. Gost12345 - 23 Января, 2017 - 11:57:34 - перейти к сообщению
Добрый день. Есть 3 выпадающих списка:Имя(name),Фамилия(fam),год рождения(year). И кнопка поиск. Я организую поиск по этим записям. Данные в выпадающий список выводятся select'om, все работает. $_GET['name'], $_GET['fam'],$_GET['year'] передает данные, которые мы выбрали в выпадающих списках. Когда я выбираю поиск по всем значениям то работает, а как реализовать например поиск только по имени или по фимилии. Помогите пожалуйста, Спасибо.
2. skruglikov - 23 Января, 2017 - 12:17:55 - перейти к сообщению
какой поиск вы хотите реализовать:
— поиск по ключевому слову?
— обновления содержимого <select> в зависимости от выбранного значения (выбираем имя, а доступные фамилии и год обновились)?
в любом случае это необходимо готовить запросы к БД, ведь ваши данные хранятся...
— поиск по ключевому слову?
— обновления содержимого <select> в зависимости от выбранного значения (выбираем имя, а доступные фамилии и год обновились)?
в любом случае это необходимо готовить запросы к БД, ведь ваши данные хранятся...
3. Gost12345 - 23 Января, 2017 - 12:26:15 - перейти к сообщению
Да, поиск по ключевому слову. Чтобы например выбрать только имя и по нему искать, а в других выпадающих списках ничего не выбирать, просто пустые значения.
if(isset($_GET['name']) and (isset($_GET['fam'])) and (isset($GET['year'])))
{
//здесь запрос к БД и выборка данных, все работает
}
а дальше вот не получается, если после пишу
if(isset($_GET['name']))
{
//то выводит и по первому условию и по второму все вместе
}
if(isset($_GET['name']) and (isset($_GET['fam'])) and (isset($GET['year'])))
{
//здесь запрос к БД и выборка данных, все работает
}
а дальше вот не получается, если после пишу
if(isset($_GET['name']))
{
//то выводит и по первому условию и по второму все вместе
}
4. skruglikov - 23 Января, 2017 - 13:04:48 - перейти к сообщению
Gost12345 пишет:
а дальше вот не получается, если после пишу
if(isset($_GET['name']))
{
//то выводит и по первому условию и по второму все вместе
}
if(isset($_GET['name']))
{
//то выводит и по первому условию и по второму все вместе
}
дело в том, что вам не надо писать отдельную проверку под каждый параметр... достаточно одной на наличие $GET массива, а там уже проверить содержимое на наличие ключей и значений, сформировать запрос и передать его к БД...
CODE (htmlphp):
скопировать код в буфер обмена
скопировать код в буфер обмена
- if ($_GET) {
- // Проверяем необходимы параметры и готовим массив с данными для поиска
- if ($search_data) {
- // формируем запрос к БД
- }
- }