Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Составления запроса

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
nik_grey
Отправлено: 11 Августа, 2014 - 12:18:42
Post Id


Гость


Покинул форум
Сообщений всего: 73
Дата рег-ции: Февр. 2014  


Помог: 0 раз(а)




День добрый.
На странице есть форма для поиска картриджей. Выбирается по дате, марке, статусу, типу.
Везде кроме даты можно выбирать конкретную величину либо выбрать 'Не важно'.
Поиск по БД осуществляю через
и , но ведь в БД нет значения 'Не важно'. Поэтому если выбрать дату и не указать допустим марка 'Не важно', то нечего не найдет.
Подскажите, пожалуйста, как быть.
Заранее спасибо.
 
 Top
Мелкий Супермодератор
Отправлено: 11 Августа, 2014 - 12:47:41
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




То не писать это условие в запрос.


-----
PostgreSQL DBA
 
 Top
nik_grey
Отправлено: 11 Августа, 2014 - 13:50:23
Post Id


Гость


Покинул форум
Сообщений всего: 73
Дата рег-ции: Февр. 2014  


Помог: 0 раз(а)




Мелкий пишет:
То не писать это условие в запрос.

Если честно, то не понял суть предложения. Можно подробней?
 
 Top
Tyoma5891
Отправлено: 11 Августа, 2014 - 13:56:19
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 621
Дата рег-ции: Авг. 2013  


Помог: 5 раз(а)




nik_grey пишет:
Мелкий пишет:
То не писать это условие в запрос.

Если честно, то не понял суть предложения. Можно подробней?

Вы лучше поподробнее опишите что Вам нужно)
 
 Top
nik_grey
Отправлено: 11 Августа, 2014 - 14:23:46
Post Id


Гость


Покинул форум
Сообщений всего: 73
Дата рег-ции: Февр. 2014  


Помог: 0 раз(а)




Tyoma5891 пишет:
nik_grey пишет:
Мелкий пишет:
То не писать это условие в запрос.

Если честно, то не понял суть предложения. Можно подробней?

Вы лучше поподробнее опишите что Вам нужно)

Пользователь выбирает критерии поиска... Можно выбрать определенный вариант - допустим тип 'Новый' или статус 'Возврат', а можно указать 'Не важно'.
Как программно сделать, чтобы данные идущие из POST со значением 'Не важно' отсекались и происходила выборка по конкретно выбранным полям?
 
 Top
Мелкий Супермодератор
Отправлено: 11 Августа, 2014 - 14:36:01
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




nik_grey пишет:
Если честно, то не понял суть предложения.

Зачем в where ставить условие, если по нему не надо фильтровать?


-----
PostgreSQL DBA
 
 Top
nik_grey
Отправлено: 11 Августа, 2014 - 15:04:42
Post Id


Гость


Покинул форум
Сообщений всего: 73
Дата рег-ции: Февр. 2014  


Помог: 0 раз(а)




Мелкий пишет:
nik_grey пишет:
Если честно, то не понял суть предложения.

Зачем в where ставить условие, если по нему не надо фильтровать?

Не могу никак понять.. Вот как сделать поиск по тем полям которые приходят без значения 'не важно'?
Можно даже на псевдоязыке.. мне бы суть уловить..
 
 Top
Мелкий Супермодератор
Отправлено: 11 Августа, 2014 - 15:06:56
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Если с формы пришло значение для фильтра - то только тогда добавляете в запрос соответствующее условие.


-----
PostgreSQL DBA
 
 Top
s3ga
Отправлено: 11 Августа, 2014 - 15:36:41
Post Id


Частый гость


Покинул форум
Сообщений всего: 152
Дата рег-ции: Март 2013  


Помог: 0 раз(а)




получается по дате выборка у вас идет всегда?.Может не правильно понимаю но может сделать что то вроде,
PHP:
скопировать код в буфер обмена
  1. $sql="SELECT * FROM table where date=$date";
  2. if (isset($_POST['cartridge']))  $sql.=" and cartridge=$_POST['cartridge']"; // проверяем выбран ли картридж
  3. if (isset($_POST['mark']))  $sql.=" and mark=$_POST['mark']";//проверяем выбрана ли марка

а вообще желательно на ваш код посмотреть для начала

(Отредактировано автором: 11 Августа, 2014 - 15:37:31)

 
 Top
nik_grey
Отправлено: 11 Августа, 2014 - 15:38:23
Post Id


Гость


Покинул форум
Сообщений всего: 73
Дата рег-ции: Февр. 2014  


Помог: 0 раз(а)




Мелкий пишет:
Если с формы пришло значение для фильтра - то только тогда добавляете в запрос соответствующее условие.

примерно так? -
PHP:
скопировать код в буфер обмена
  1.  
  2. $query = "SELECT * FROM table WHERE data BETWEEN $_POST['start'] and $_POST['finish'] "; // дата по-любому выбирается, т.к. по-умолчанию стоит диапазон с первого по текущее число месяца
  3. if ($_POST['status'] != 'Не важно'){
  4.   $query .= "AND status = $_POST['status']"
  5. }
  6. if ($_POST['condition'] != 'Не важно'){
  7.   $query .= "AND condition = $_POST['condition']"
  8. }
  9.  

(Добавление)
s3ga пишет:
получается по дате выборка у вас идет всегда?.Может не правильно понимаю но может сделать что то вроде,
PHP:
скопировать код в буфер обмена
  1. $sql="SELECT * FROM table where date=$date";
  2. if (isset($_POST['cartridge']))  $sql.=" and cartridge=$_POST['cartridge']"; // проверяем выбран ли картридж
  3. if (isset($_POST['mark']))  $sql.=" and mark=$_POST['mark']";//проверяем выбрана ли марка

а вообще желательно на ваш код посмотреть для начала

пока писал свои наброски - Вы меня опередили)
(Добавление)
Все получилось.. Всем большое спасибо..
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB