Как лучше передать sql запрос между страницами...

kolemming

Новичок
Как лучше передать sql запрос между страницами...

В интрасети работает небольшая программка по учету входящий документации, нужно печатать отчеты. В основном справочнике документов есть фильтр, с возможностью ограничить критерии отображения документов, а печатная форма это уже отдельная страница и вот при переходе на нее у меня получается вот такой забавный ЧПУ.

http://localhost/orders/actions.php?object=orders&action=print&query= select orders.id, orders.order_date, orders.partner_name, orders.partner, orders.order_name, orders.last_date, orders.plane_date, orders.status, orders.accept, orders.no_c_date, users.full_name as name from orders,users where users.id=orders.user_id order by id asc &info=Все документы за время работы

Меня то он не смущает, а вот пользователей может начать смущать, как лучше передать текст запроса между страницами справочника и печати?
 

SiMM

Новичок
Нет ничего глупее, чем передавать запрос, да ещё и в чистом виде, в URL'е. Малейшие шаловливые ручки снесут тебе базу. Всю. Начисто.
 

Фанат

oncle terrible
Команда форума
SQL запрос - это программа.
программу должен написать программист ОДИН РАЗ.
и никуда её передавать не надо.

и сессии тут не при чём.
 

kolemming

Новичок
Да кстати, на счет того что кто-то подправит строку запроса я что-то не подумал, хотя страница выводится на ~1 секунду и сразу редирект обратно в справочник. Сессии это конечно вариант, возможно на них и перепишу.

SQL запрос - это программа.
программу должен написать программист ОДИН РАЗ.
и никуда её передавать не надо.
Как тогда лучше сделать? У меня там можно фильтровать по датам, пользователям, плюс сортировать по любому выбранному полю итп, строится довольно муторный запрос.

Или я что-то не понимаю в принципах создания, такого рода скриптов?
 

Фанат

oncle terrible
Команда форума
не понимаешь.
запрос строится все равно по некоему шаблону.
это и есть программа.
а ты уже полдставляешь в него данные - что запрашивать, как сортировать.
Ну так и нет никакой проблемы подставить те же данные в тот же самый запрос. ы?

какая проблема для печати использовать тот же самый скрипт, просто добавив к адресу еще и волшебное слово print?
 

kolemming

Новичок
Это программу нужно видеть и зачем мне переписывать заново тот же метод, если строка запроса уже построенна как в раз в том методе, в котором пользователь визуально выбирает что ему нужно распечатать или вывести на экран?

Можно создать отдельный метод возвращающий сгенерированный sql запрос, но смысла в нем не много, потому что используется он токо в методе show и print, а так придется думать как передавать параметры запроса, что сводится к работе с несколькими переменными, а готовая строка с sql кодом, все таки одна переменная!

В целом вариант с сессиями вижу наиболее привелекательным...
 

Фанат

oncle terrible
Команда форума
хо-хо
ООП на марше
"зачем мне переписывать метод"
методы строят строки запросов.
обнять и плакать
 

StUV

Rotaredom
kolemming
у тебя JS строит запрос (т.е. клиентский скрипт) ?
почему бы не перенести эту функциональность на сервер ?
таким образом проще контролировать набор допустимых для клиента операций и квери-стринг перестанет "смущать" юзеров :)
 

agx

Программер :-)
Фанат
Как же тогда сделать постраничный вывод?
Пользователь заполняет форму для поиска (задает параметры поиска), результаты воводятся постранично (скажем, 25 строк на сранице).
Единственный вариант, который я тут вижу - сессии (в сессии хранить запрос или его параметры).
 

SiMM

Новичок
Да посмотрите вы на тот же яндекс, гугль и другие поисковики - достаточно взглянуть на строку URI, чтобы понять, что ничего в сессиях хранить не надо - запрос формируется на основании прешедших данных.
 

Gas

может по одной?
Автор оригинала: agx
Единственный вариант, который я тут вижу - сессии (в сессии хранить запрос или его параметры).
Запрос и его параметры вещи очень разные.
Очень правильно - это передавать условия GET'ом.
 

kolemming

Новичок
StUV

Все строит php. Перенес сам запрос в переменную сессии.

Всем спасибо за подсказку, по поводу того что запрос в строке браузера, опасен-стормозил немного :cool:
 

Фанат

oncle terrible
Команда форума
kolemming
приходи ещё.
тут таких советчиков с тупыми советами - как собак нерезаных
 
Сверху