[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Расширенный поиск на PHP
ЛеваXFactor
Здравствуйте!
подскажите пожалуйста как организовать расширенный поиск (PHP+MySQL)
Я не понимаю как это все вместе реализовать ( по разным параметрам)

Если можно, набросайте код (структуру) - не получается сделать. с одного поля - получилось( в нете много примеров), а вот многокритериальнй - как то не совсем
Поиск по дипломным работам:
Первое поле - автор, название
Вторые и последующие поля (кафедра, факультет, год защиты и код специальности)
Спасибо
Эли4ка
Цитата
расширенный поиск (PHP+MySQL)

Что значит расширенный поиск?

Тебе полнотекстовой поиск нужен что ли?
ЛеваXFactor
Нет, т.е поиск не по одному полю, а по нескольким (включая элементы radiobutton) и другие textbox
Игорь_Vasinsky
а в чём проблема?

в HTML? в PHP? в SQL ?

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
walerus
Игорь_Vasinsky
Судя по вопросам - проблема в предмете. Если бы он хотя бы пхпадмин открыл, то вопросы отпали бы сами по себе... rolleyes.gif
walerus
ЛеваXFactor
Цитата
Если можно, набросайте код (структуру) - не получается сделать. с одного поля - получилось( в нете много примеров), а вот многокритериальнй - как то не совсем



Если можно, набросай сюда свой код который у тебя получилось сделать, структуру таблиц так же набросай, а там посмотрим чем тебе помочь можно.
Эли4ка
Цитата
Нет, т.е поиск не по одному полю, а по нескольким (включая элементы radiobutton) и другие textbox

Ну а при чем тут тогда SQL и PHP?
ЛеваXFactor
if($vvAuthor!=''){
$condition_of_Query .= "Author LIKE '%$vvAuthor%'";
} else
if
($vvTitle!=''){
$condition_of_Query .= "Title LIKE '%$vvTitle%'";
}else
if
($vvFac!=''){
$condition_of_Query .= "Fac LIKE '%$vvFac%'";
}else
if
($vvKaf!=''){
$condition_of_Query .= "Kaf LIKE '%$vvKaf%'";
}else
if
($vvUGSN!=''){
$condition_of_Query .= "UGSN LIKE '%$vvUGSN%'";
}
else
if
($vvYear!=''){
$condition_of_Query .= "Year LIKE '%$vvYear%'";
}

Я сделал так, но у меня получается, что поиск только по каждому в отдельном случае ведется, а как сделать общий поиск по двум 3-м полям или по всем даже
Спасибо
walerus
ЛеваXFactor
Что это за набор символов?
$condition_of_Query - где начало формирования строки запроса?
Как выглядит итоговый запрос?, то что тут написано, работать вообще не должно, т.к. строка запроса формируется немного иначе, например:

ТЗ
Нужно найти результат по автору, по теме или по двум параметрам сразу.
$query_string = array();
$autor = 'Vasili';
$title = 'NOS';
if ( $autor != '' ){ $query_string[] = "`autor` = '" . $autor . "'"; }
if ( $title != '' ){ $query_string[] = "`title` = '" . $title . "'"; }

// Итоговый запрос будет таким:
if ( !empty($query_string) ){
$result_query = 'SELECT * FROM `table` WHERE ' . implode(' AND ', $query_string );
}else{
$result_query = 'Запрос не сформирован, проверьте данные';
}

echo "$result_query";

Результат:
1) Если ничего не указано: Запрос не сформирован, проверьте данные
2) Если указан только автор: SELECT * FROM `table` WHERE `autor` = 'Vasili'
3) Если указана только тема: SELECT * FROM `table` WHERE `title` = 'NOS'
4) Если указан и автор и тема: SELECT * FROM `table` WHERE `autor` = 'Vasili' AND `title` = 'NOS'
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.