#php #mysql #syntax #conditional-statements
#php #mysql #синтаксис #условные операторы
Вопрос:
у меня есть этот запрос :
SELECT
CONCAT(CT.FIRSTNAME,' ', CT.LASTNAME) AS NAME,
T.TYPE_OF_VISITOR_NAME AS TYPE_OF_VISITOR,
I.INDUSTRY_NAME AS INDUSTRY
FROM
COMPANY CY, CONTACTS CT, INDUSTRY I, TYPE_OF_VISITOR T
WHERE
CY.INDUSTRY_ID = I.INDUSTRY_ID
AND CY.COMPANY_ID = CT.COMPANY_ID
AND CT.TYPE_OF_VISITOR = T.TYPE_OF_VISITOR_ID
AND '$searchType' LIKE '%$searchString%'
где $searchType
— значение из поля со списком, которое содержит 2 значения :
- ИМЯ (это не распознается в базе данных, пока я использую
CONCAT(CT.FIRSTNAME,' ', CT.LASTNAME)
проблема в том, что при выборе пользователемCOMPANY_NAME
у меня будет неправильный синтаксис) - ИМЯ_КОМПАНИИ
и $searchString
— это поле ввода для поиска.
в приведенном выше запросе. когда пользователь ищет что-либо под типом COMPANY_NAME, это работает. проблема в том, что я хочу иметь опцию поиска также для name (имя и фамилия). к сожалению, столбцы в моей базе данных — это FIRSTNAME
и LASTNAME
. которые я объединил в инструкции select.
Вопрос :
- Каков правильный способ добиться поиска
FIRSTNAME
иLASTNAME
без влияния на результат, когда пользователь хочет выполнить поискCOMPANY_NAME
Насколько это возможно, я хочу сделать это, используя только один запрос. Буду признателен за любую помощь. Спасибо
Ответ №1:
Вместо NAME
значение поля со списком должно быть
CONCAT(`CT`.`FIRSTNAME`,' ', `CT`.`LASTNAME`)
значения в поле со списком :
1. CONCAT(`CT`.`FIRSTNAME`,' ', `CT`.`LASTNAME`)
2. `COMPANY_NAME`
Комментарии:
1. представьте, что пользователь видит
"CONCAT(CT.FIRSTNAME,' ', CT.LASTNAME)"
. Они будут волноваться.2. В противном случае мы можем написать условие типа: if($SearchType == ‘NAME’){ $SearchType = «CONCAT(CT.FIRSTNAME,’ ‘, CT.LASTNAME)»; } ВЫБЕРИТЕ CONCAT (CT.FIRSTNAME,’ ‘, CT.LASTNAME) В КАЧЕСТВЕ ИМЕНИ, T.TYPE_OF_VISITOR_NAME КАК TYPE_OF_VISITOR, I.INDUSTRY_NAME КАК ОТРАСЛЬ ОТ КОМПАНИИ CY, КОНТАКТЫ CT, ОТРАСЛЬ I, TYPE_OF_VISITOR T ГДЕ CY. INDUSTRY_ID = I.INDUSTRY_ID И CY.COMPANY_ID = CT.COMPANY_ID И CT.TYPE_OF_VISITOR = T.TYPE_OF_VISITOR_ID И ‘$SearchType’ ПОХОЖИ НА ‘%$searchString%’