kronter
29.04.2013 - 12:57
Всем привет. Хочу сделать на сайте поиск объявлений по категориям(все категории-это столбцы в одной таблице razm_avto). Я делаю так:
$model=$_POST['model'];
$god=$_POST['god'];
$query = "SELECT * FROM `razm_avto` WHERE `model`='$model' && `god`='$god'";
$res = mysql_query($query);
...ниже идет отображение объявлений...
Все работает только если выбрать категории в двух окнах. Если вместо && поставить or, то работает только с одной категорией. А нужно сделать, чтобы пользователь мог выбрать или одну категорию, или две, но чтобы все работало.
Если что-то непонятно объяснил, сообщите. Спасибо
Цитата |
Если вместо && поставить or |
&& - это AND
мне кажется со структурой что-то не то...
Игорь_Vasinsky
29.04.2013 - 13:20
1. данные отправляемые в БД обрабатывайте с mysq_real_escape_string()
2. что мешает поставить select в форму поиска и передавать AND или OR - принимать и подставлять в запрос?
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
или я что-то не понял... или в таблице razm_avto должен быть id категории, тогда можно использовать WHERE ... IN()
... WHERE `category_id` IN(1,2,3) AND `model`='$model' && `god`='$god'
где 1,2,3 - id выбранных категорий
kronter
29.04.2013 - 13:41
Цитата (rooor @ 29.04.2013 - 13:23) |
или я что-то не понял... или в таблице razm_avto должен быть id категории, тогда можно использовать WHERE ... IN()
... WHERE `category_id` IN(1,2,3) AND `model`='$model' && `god`='$god' где 1,2,3 - id выбранных категорий |
Все равно в этом случае можно осуществить отбор только если выбрать все категории. А мне нужно, чтобы можно было выбрать только одну, а остальные не выбирать, и подбор все равно бы работал.
kronter
29.04.2013 - 13:43
Цитата (Игорь_Vasinsky @ 29.04.2013 - 13:20) |
1. данные отправляемые в БД обрабатывайте с mysq_real_escape_string() 2. что мешает поставить select в форму поиска и передавать AND или OR - принимать и подставлять в запрос? |
Так она у меня и так по форме поиска работает. Проблема в том, чтобы можно было использовать одновременно или AND или OR
Игорь_Vasinsky
29.04.2013 - 13:47
делай с UNION 2й SQL запрос
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
kronter
29.04.2013 - 13:52
спасибо. сейчас попробую
kronter
29.04.2013 - 14:19
блин ничего не получается. Подскажите как это прописать. Уже третий день голову ломаю
Игорь_Vasinsky
29.04.2013 - 14:27
да можно и неделю ломать, а потом всё бросить
https://www.google.ru/webhp?hl=ru&tab=ww#ne...iw=1920&bih=912
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
andrey888
29.04.2013 - 20:36
kronterСделай проще.
У тебя приходят две переменные и ты не знаешь где и что пришло
$model=$_POST['model'];
$god=$_POST['god'];
тогда делаем
$var=($model=='' || $god=='') ? 'OR' : 'AND' ;
и вставляем эту переменную в запрос на то место где будет OR или AND.
- это как пример. можно сделать и по другому.. но суть я думаю ты понял.
_____________
Прогноз на следующие 5 лет : Россия, Китай - две величайшие державы.
США в Ж*пе. Справедливость восторжествует. )
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.