Подскажите проффесионалы, как правильнее построить сценарий зопроса данных!

kodzo

Новичок
Подскажите проффесионалы, как правильнее построить сценарий зопроса данных!

Доброго здравия всем!
Короче ребята, у меня вот такой тяжолый случай.
Мне нужно сделать движок для запроса данных(Search Engine) из базы данных (MySQL)
Я кое что уже сделал, но точно знаю, что я что то делаю не так.
Есть форма, где клиент может задать параметры для поиска.

А в частности:

Марка машины,
Модель автомобиля,
Год авто,
Тип двигателя(бензин, дезель, газ. и.т.д)
Тип коробки передач,
Цена,
И.Т.Д.

Это конечно легко, если клиент отправит все параметры. Я могу написать сценарий, по каким параметрам надо искать продукт. Или если он передаст только марку авто и год, или Марку, год, цену. Но вся загвоздка в том что я не могу знать какие переменные клиент передаст сценарию. Если писать сценарий под каждый возможный вариант, то получается какая то каша. И Это не возможно предугадть
Пример.
Если клиент отправит только марку авто.
Select * From tabel where $marka = mark;

Если клиент отправит марку и год,
Select * From tabel where mark= $marka && year = $year

Если клиент отправит марку, год и цену.
Select * From tabel where $marka = mark && year = $year && price = $price;

И.Т.Д

Но как проше написать код, ведь параметров на много болЬше чем я тут привёл в примере. Неужели надо писатЬ сценарий под все возможние варианты

Я был бы вам оченЬ признателен если бы вы подсказали в каком направлении я должен двигаться. Как лучше подойти к решению этой задачи.

Подскажите please, только без иронии...
 

Фанат

oncle terrible
Команда форума
Стареть начинаю.
проще привести готовый код, чем заставить найти примитивную закономерность в запросе человека, который знает страшное слово Search Engine, то есть, позиционирует себя, как программиста, наверное...
PHP:
$w=array();
if (!empty($_GET['rooms'])) $w[]="rooms='".mysql_real_escape_string($_GET['rooms'])."'";
if (!empty($_GET['space'])) $w[]="space='".mysql_real_escape_string($_GET['space'])."'";
if (!empty($_GET['price'])) $w[]="rooms='".mysql_real_escape_string($_GET['price'])."'";

if (count($w)) $where="WHERE ".implode($w," AND "); else $where='';
$query="select * from table $where";
 

shurik_vl

Guest
А ты заставь пользователя ввести минимум того,чтоб получить результат поиска похожий на правду...
 

confguru

ExAdmin
Команда форума
Писал подобное лет 7 назад за 150$
Все типизированные данные в дропдаунах (хранятся в integer)
Нужно сделать проверку intval($val)>0
построит SQL
 

kodzo

Новичок
А ты заставь пользователя ввести минимум того,чтоб получить результат поиска похожий на правду...
shurik_vl Ты гениальный программист........:))

-~{}~ 23.01.06 23:55:

admin
Код который дал Фанат решил эту проблему на 100%. Фанат отрыла мне двери в волшебный мир массивов.

Тебе тоже спасибо!!!
 

confguru

ExAdmin
Команда форума
kodzo

Ты так кодить никогда не научишься..
Если ты дизайнер-версталщик то простительно :)
 

kodzo

Новичок
admin
Ты как имеешь в виду, кодить, как ты или как фанат?

-~{}~ 24.01.06 20:37:

admin
Я очень тшательно листал твои сайты, базару нет, ты мастер,
Но неужели у меня нет шансов, даже если очень захотеть научиться?
 

Alexandre

PHPПенсионер
Но неужели у меня нет шансов, даже если очень захотеть научиться?
[offtop] шансы есть всегда,
главное их в нужное время определить и сразу использовать, а то они просто растаят... А таят шансы - быстрее льда.
 
Сверху