[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Выборка из БД по нескольким параметрам
AndreyL
Здравствуйте!
Тут вот такая задача - сделать выборку из БД по нескольким параметрам (своеобразный фильтр).
Конкретно: есть БД с инфой о базах отдыха, с полями (food, med, place и т.д. все цифрами(0-4)) Так вот задаются параметры, например food=1(с питанием), med=2(без мед.услуг), place=0(местонахождения не имеет значения), и нужно выбрать из базы все базы отдыха, которые соответствуют этим параметрам, причем если есть "0", то он выводит все строки этого поля, если они соответствуют 2м другим параметрам. И последнее, есть ещё базы отдыха, на которых можно организовать отдых и с питанием и без такового, т.е. они должны выводиться, какой бы параметр ни был задан хоть "с питанием", хоть "без", хоть "не важно".
Сам голову уже сломал...
P.S. сайт на PHP и MySQL



Спустя 52 минуты, 40 секунд (29.05.2009 - 07:04) AndreyL написал(а):
По поводу своего варианта:
PHP
$result mysql_query("SELECT id,title,description FROM baze WHERE place='$place' && (food='$food' or food='3') && (med='$m

Но в этом случае не учитывается вариант, в котором мы оставляем поле пустым, т.е. значение = '0'...

Спустя 1 час, 1 минута, 39 секунд (29.05.2009 - 08:05) AndreyL написал(а):
А-а-а!!! СУПЕР!!! На сколько всё оказалось просто!!! )))
PHP
$result mysql_query("SELECT id,title,description 
FROM baze 
WHERE (place='$place' or $place='0') 
&& (food='$food' or food='3' or $food='0')
&& (med='$med' or med='3'&nb



P.S. Вот и поговорил сам с собой... )) biggrin.gif

Спустя 49 минут, 59 секунд (29.05.2009 - 08:55) sergeiss написал(а):
"Тихо сам с собою я веду беседу..." (С) smile.gif

Обрати внимание, что в твоем коде
PHP
$result = mysql_query("SELECT id,title,description FROM baze WHERE (place='$place' or $place='0') && (food='$food' or food='3' or $food='0') &&

есть ошибки. Причем такие, что всё будет работать, но выдавать неверный результат.
Попробуй сам их найти!

PS. И впредь, плз, оформляй код специальными тэгами! В данной теме я это для тебя сделал уже.

Спустя 1 час, 14 минут, 47 секунд (29.05.2009 - 10:10) AndreyL написал(а):
sergeiss, эмм, это ты про то, что я забыл двойные кавычки в конце запроса поставить? ))
Это оттого, что я код писал не в dreamweaver'е, а в блокноте... laugh.gif

Спустя 26 минут, 50 секунд (29.05.2009 - 10:37) sergeiss написал(а):
AndreyL - нет, я про "place='$place' or $place='0'". Тут в одном месте лишний доллар. Но ошибки при выполнении скрипта не будет, т.к. это чисто логическая ошибка (по причине опечятки, я думаю smile.gif).

Спустя 1 час, 27 минут, 26 секунд (29.05.2009 - 12:05) AndreyL написал(а):
sergeiss, нет, в том то и дело, что опечатки никакой нет! Проверяется именно переменная! И когда она равна '0', то данное поле вообще не рассматривается. А в базе данных вообще нет ни одного поля, равное '0'!
Именно этого я и добивался!
Если сделать "place='$place' or place='0'", то это будет совершенно другое - он будет проверять на наличие ячеек с параметром '0', а таких, как я уже сказал все-равно нет.

Спустя 3 месяца, 2 дня, 3 часа, 24 минуты, 30 секунд (1.09.2009 - 15:29) Soles написал(а):
Народ, спасибо Вам обоим!
Если бы не замечание sergeiss, я бы не понял всей глубины гениальной записи AndreyL biggrin.gif

Спустя 4 месяца, 19 дней, 19 часов, 24 минуты, 6 секунд (21.01.2010 - 11:53) Hurrep написал(а):
А если нам нужно поставить параметры не равно а больше или меньше или больше одного значения и меньше другого - такое будет работать?
Быстрый ответ:

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