Покинул форум
Сообщений всего: 36
Дата рег-ции: Июнь 2012
Помог: 0 раз(а)
Мне нужно создать универсальную выборку.
Подробно:
Есть Главная таблица, вся информация стекается в эту таблицу! Созданный так же ещё несколько таблиц которые являются на подобии справочников. При внесении информации они используются в html форме выпадающего списка. Требуется сделать универсальную выборку по этим справочникам, но так что бы из нескольких форм выпадающего списка (в данном случаи их 7) клиент мог выбрать люой из них да так что бы мог выбрать как все так и несколько! Т.е. из 7 он хочет выбрать 3, а остальные не должны участвовать в селекте!
Я в форме выпадающего списка добавил возможность выбора пустого значение <option value="">не выбрано</option> а дальше с низу идёт скрипт вывода из таблицы.
Вся загвоздка в том что он не реагирует на "", т.е. пустое значение!
На данный момент я узнал что строка
if (isset($_GET[status_id])) $status_id = intval($_GET['status_id']); else $status_id = 0;
это проверка на пустое значение status_id. Но как это применить в селекте??
Покинул форум
Сообщений всего: 36
Дата рег-ции: Июнь 2012
Помог: 0 раз(а)
Возможно ли в php выполнить подобный алгоритм:
После проверки пустого значение например переменная $t определяем текстом "and dogovor.status_id='$status_id'" дальше в селекте пишем:
SELECT * FROM `dogovor`WHERE $t
Вся проблема в том что я не знаю как в php это правильно написать, если данный алгоритм возможно выполнить в php.
Green
Отправлено: 23 Июня, 2012 - 08:01:18
Частый гость
Покинул форум
Сообщений всего: 214
Дата рег-ции: Апр. 2012 Откуда: Кисловодск
Помог: 9 раз(а)
cibin пишет:
Возможно ли в php выполнить подобный алгоритм:
После проверки пустого значение например переменная $t определяем текстом "and dogovor.status_id='$status_id'" дальше в селекте пишем:
SELECT * FROM `dogovor`WHERE $t
Вся проблема в том что я не знаю как в php это правильно написать, если данный алгоритм возможно выполнить в php.
$sSQL="SELECT * FROM `dogovor`, `bank`, `periodichnost`, `sposob_oplati`, `sposob_peredachi`, `status`, `vid_billinga`, `vid_oplati` WHERE dogovor.bank_id=bank.id_bank and dogovor.periodichnost_id=periodichnost.id_periodichnost and dogovor.sposob_oplati_id=sposob_oplati.id_sposob_oplati and dogovor.sposob_peredachi_id=sposob_peredachi.id_sposob_peredachi and dogovor.status_id=status.id_status and dogovor.vid_billinga_id=vid_billinga.id_vid_billinga and dogovor.vid_oplati_id=vid_oplati.id_vid_oplati
а дальше должно приписываться условие отбора! Поэтоум и спрашиваю что мне вписывать в test в мойём случаи??
Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010 Откуда: Самара
Помог: 17 раз(а)
Не стал разбираться конкретно с Вашим запросом, но суть Вашей проблемы понял.
Приведу не большой пример:
это проверка на существование get параметра input, если он существует то присваиваем переменной $input_sql кусок нужного sql запроса, если его нет то оставляем эту переменную пустой. $where я сделал переменной если условий и вовсе не будет...
if(isset($_GET['status_id']) or isset($_GET['vid_oplati_id']) or isset($_GET['vid_billinga_id']) or isset($_GET['sposob_peredachi_id']) or isset($_GET['periodichnost_id']) or isset($_GET['sposob_oplati_id']) or isset($_GET['bank_id'])){
$sSQL="SELECT * FROM `dogovor`, `bank`, `periodichnost`, `sposob_oplati`, `sposob_peredachi`, `status`, `vid_billinga`, `vid_oplati` WHERE dogovor.bank_id=bank.id_bank and dogovor.periodichnost_id=periodichnost.id_periodichnost and dogovor.sposob_oplati_id=sposob_oplati.id_sposob_oplati and dogovor.sposob_peredachi_id=sposob_peredachi.id_sposob_peredachi and dogovor.status_id=status.id_status and dogovor.vid_billinga_id=vid_billinga.id_vid_billinga and dogovor.vid_oplati_id=vid_oplati.id_vid_oplati $status_id_sql$vid_oplati_id_sql$vid_billinga_id_sql$sposob_peredachi_id_sql$periodichnost_id_sql$sposob_oplati_id_sql$bank_id_sql";
всё в роде бы хорошо но при любом выборе всплывающего списка он выдаёт всю таблицу, а не то что мы запросили! (Добавление)
т.е. создаётся такое ощущение как будто мы ни чего не выбирали из всплывающих списков! (Добавление)
добавил
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.