country city predmet1 predmet1 on_dolgen mi_dolgni
Саратовская Урюпинск кирпич шпала 120 100
Пермская Касапетовка лопат грабли 200 100
Московская Урюкинск мотыга рогатка 100 400
-------------------------------- - и т. д. -------------------------------- ------------------------------
У меня есть массив предметов $wot1 = array(1=>ковшик, 2=>кастрюля,3=>кувшин,4=>меч).
Для дальнейшей обработки в SELECT я делаю строку:
$w1 = "'" . implode("', '",$wot1) . "'";
В результате этого получаем строку: 'ковшик', 'кастрюля', 'кувшин', 'меч'
У меня есть массив регионов $wot2 = array(1=>Московская, Нарофоминск, 2=>Челябинская,Курган).
$w2 = "'" . implode("', '",$wot2) . "'";
В результате получаем строку: 'Московская, Нарофоминск', 'Челябинская, Курган'
Теперь мне в команде SELECT надо сделать выбоку из таблицы catalog1:
$dydy = array();
$sql2 = "SELECT *
FROM catalog1 WHERE country IN ($w2) and city IN ($w2) and
predmet1 IN ($w1) or predmet2
IN ($w1) and on_dolgen - mi_dolgni <= 30 or mi_dolgni — on_dolgen >= 0";
$result2 = mysql_query($sql2) or die(mysql_error());
while($row2 = mysql_fetch_array($result2, MYSQL_NUM)){
$dydy[] = $row2;
}
В этой записи нормально проходит predmet1 IN ($w1) or predmet2 IN ($w1).
Не проходит country IN ($w2) and city IN ($w2) , даже если запишу country, city IN ($w2).
Не проходит on_dolgen - mi_dolgni <= 30 or mi_dolgni - on_dolgen >= 0 (Прошло бы, если бы была простая запись: on_dolgen > 40, но это мне не нужно.
Вопрос.
Как мне грамотно сделать выборку в SELECT с учётом всех «пожеланий» в WHERE?