287_08
20.09.2009 - 22:43
Доброго времени. Вот код
PHP |
if (!empty($proizvoditel)) { $where .= 'where proizvoditel = ' . $proizvoditel;} // добавляем к строке вывода производителя? производитель в поиске должен быть выбран полюбому if (!empty($model)) { $where .= ' AND model = '. $model ;} // добавляем к строке вывода модель if (!empty($god_ot)) { $where .= ' AND year >= '. $god_ot;} // добавляем к строке вывода год выпуска от if (!empty($god_do)) { $where .= ' AND year <= '. $god_do;} // добавляем к строке вывода год выпуска от if (!empty($cena_ot)) { $where .= ' AND cena_ot = '. $cena_ot;} // добавляем к строке вывода год выпуска от if (!empty($cena_do)) { $where .= ' AND cena_do = '. $cena_do;} // добавляем к строке вывода год выпуска от |
Проблема в том, что если пользователь не укажет производителя то получится вот что:
PHP |
select * from mawina where AND model = 18 AND year >= 1952 AND year <= 1952&n |
Можно как-нибудь обьявить поиск по производителю так, чтобы он все выбирал?
Спустя 1 час, 2 минуты, 38 секунд (20.09.2009 - 22:46) sergeiss написал(а):
Цитата (287_08 @ 20.09.2009 - 22:43) |
Можно как-нибудь обьявить поиск по производителю так, чтобы он все выбирал? |
Делаешь так.
PHP |
if (!empty($proizvoditel)) { $where[] = 'where proizvoditel = ' . $proizvoditel;} // добавляем к строке вывода производителя? производитель в поиске должен быть выбран полюбому if (!empty($model)) { $where[] = ' model = '. $model ;} // добавляем к строке вывода модель if (!empty($god_ot)) { $where[] = ' year >= '. $god_ot;} // добавляем к строке вывода год выпуска от if (!empty($god_do)) { $where[] = ' year <= '. $god_do;} // добавляем к строке вывода год выпуска от if (!empty($cena_ot)) { $where[] = ' cena_ot = '. $cena_ot;} // добавляем к строке вывода год выпуска от if (!empty($cena_do)) { $where[] = ' cena_do = '. $cena_do;} // добавляем к строке вывода год выпуска от |
Формируем запрос:
PHP |
$sql='select * from mawina where ' . implode( ' and ', $where); |
И в итоге можешь выбирать или не выбирать любые параметры.
Спустя 8 часов, 52 минуты, 34 секунды (21.09.2009 - 07:38) glock18 написал(а):
Цитата |
if (!empty($proizvoditel)) { $where[] = 'where proizvoditel = ' . $proizvoditel; |
where из строки только убери.
Спустя 1 час, 2 минуты, 55 секунд (21.09.2009 - 08:41) sergeiss написал(а):
glock18 - ну да, ты прав
А я чегой-то не внимательно посмотрел.