вопрос опять по запросу

Benderlio

Новичок
вопрос опять по запросу

есть запрос, должен искать слова $search в базе, с условиями город, область страна категория подкатегория..
эти условия ставлю в конце запроса...
получаеться что выбирает все подряд, и условия and не влияют ...
подозреваю что напутал с лефт джойнами...
(без них просто умножение таблиц получеться)
подскажите плиз как быть ?
select *
from post
left join subsection on subsection.id_subsection=post.id_subsection
left join section on section.id_section=subsection.id_section

left join country on country.id_country=region.id_country
join region on region.id_region=city.id_region
left join city on post.id_city=city.id_city

where


MATCH (text_post) AGAINST ('$search')
or MATCH (name_post) AGAINST ('$search')

and section.id_section='$id_section'
and post.id_subsection='$id_subsection'
and country.id_country='$id_country'
and region.id_region='$id_region'
and post.id_city='$id_city'
 

Ermitazh

Новичок
стоп, что ты хочешь сделать? поиск с выбором нескольких параметров для поиска? Если например выбрано 2 параметра то искать только по 2, если другое число, то по другому числу парамеиров?
 

Benderlio

Новичок
Ermitazh
ну в принцыпе да... искать по нескольким параметрам...
по слову + параметрам (рубрики)...
 

Ermitazh

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

Benderlio

Новичок
Ermitazh
гм, а как правильно ? сначало был такой, работал как надо...
select *
from post
left join subsection on subsection.id_subsection=post.id_subsection
left join section on section.id_section=subsection.id_section
where
MATCH (text_post) AGAINST ('$search')
or MATCH (name_post) AGAINST ('$search')
дальше не знаю как быть

-~{}~ 11.09.06 12:59:

параметры не обязательны...
 

Ermitazh

Новичок
а где проверка на то, какие поля выбраны? ты же по полям ищешь. Я бы сделал через массивы, например создаёшь пустой массив. Проверяешь по каким полям хочешь сделать запрос, например
if (($_GET['toto'] != "") && ( $_GET['toto2'] != "")) { $search['tekst'] = " sjuda pishesh uslovie zaprosa naprimer id='$totoid' AND $didi = '$toto2id"}

с помощью implode разбиваешь массив
$search = imlode (AND, $search)
и подставляешь его в запрос примерно так SELECT ... WHERE '.$search.' ...
 

Benderlio

Новичок
и не только по полям...
прежде всего ищеться по слову...
ну и + параметры...

а в запросе никак нельзя отсекать ненужные параметры ?
 

Ermitazh

Новичок
ну если по слову то и пиши запрос например с оператором Like

-~{}~ 11.09.06 13:48:

а в запросе никак нельзя отсекать ненужные параметры ?
отсекаться могут если у тебя подставлено условие, только в этом случае
 
Сверху