imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Веб-мастеру > Веб-программирование
Опции темы
Старый 01.08.2005, 16:53     # 1
ac2on
Junior Member
 
Регистрация: 28.07.2005
Адрес: Ставрополь
Сообщения: 90

ac2on Известность не заставит себя ждать
Помогите упростить систему обращения к базе данных

Вобщем проблема такая.
Я еще только разбираюсь в языке но проблемы уже есть.
Имеется база данных, достаточно большая, написанная на Access.
Она постоянно пополняется и нужен доступ к ней с сайте.
Т.к. там 8 различных разделов, и у каждого раздела свои критерии отбора данных из базы и свои запросы получилось достаточно много файлов, по 2 на каждый раздел.
Соответсвенно это не совсем удобно и потом будет сложно навести порядок.
Все написано на PHP, доступ к базе данных осуществляется с помощью ODBC.
Есть ли какой-нибудь способ объединить все в один скрипт, который бы генерировал формы для формирования запросов и выводил результаты поиска по всем разделам, на основе выбранного раздела?
В том виде, в котором сделано все работает идеально, как задумывалось. Но хочется теперь привести все к порядку.
Все работает под 2003 server, apache из пакета Денвер.

Последний раз редактировалось ac2on; 01.08.2005 в 16:56.
ac2on вне форума  
Старый 02.08.2005, 13:50     # 2
EvroStandart
Full Member
 
Аватар для EvroStandart
 
Регистрация: 20.01.2004
Адрес: Таллинн
Пол: Male
Сообщения: 623

EvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собой
Не понял суть проблемы. Много каких файлов? .php?
Надо было сразу делать меню и оттуда переходить на соответствующие скрипты.
EvroStandart вне форума  
Старый 02.08.2005, 16:04     # 3
ac2on
Junior Member
 
Регистрация: 28.07.2005
Адрес: Ставрополь
Сообщения: 90

ac2on Известность не заставит себя ждать
Цитата:
Сообщение от EvroStandart
Не понял суть проблемы. Много каких файлов? .php?
Надо было сразу делать меню и оттуда переходить на соответствующие скрипты.
Ну это я сделал. Есть меню, есть скрипт, который это меню вызывает... Но хочется что бы вместо 38 фалов, был один, который бы все делал.
В архиве сами коды.
Вложения
Тип файла: zip base.zip (31.8 Кбайт, 4 просмотров - Кто скачивал? )
ac2on вне форума  
Старый 02.08.2005, 16:28     # 4
trancerr
Junior Member
 
Аватар для trancerr
 
Регистрация: 12.09.2002
Адрес: Владивосток!
Сообщения: 119

trancerr Известность не заставит себя ждатьtrancerr Известность не заставит себя ждать
если я правильно понял, то тебе нужно сделать примерно так (реализация может быть и другая):

в меню ссылки в формате http://host/file.php?action=action1&param2=xxx

в файле file.php (в самом начале) проверяется значение переменных $action и param1 (и др. - это зависит от потребностей...)
в зависимости от значений переменных - выполняются разные действия....

примерно так
__________________
- P.L.U.R. -
musik is the key
trancerr вне форума  
Старый 02.08.2005, 17:45     # 5
EvroStandart
Full Member
 
Аватар для EvroStandart
 
Регистрация: 20.01.2004
Адрес: Таллинн
Пол: Male
Сообщения: 623

EvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собой
Цитата:
ac2on:
Но хочется что бы вместо 38 фалов, был один, который бы все делал.
Так в принципе не делается. Если у тебя будет файл на пять тысяч строк и нужно будет что-то изменить - замучаешся разбираться что к чему.
Можно выделить в разные файлы запросы к базе и выписку для пользователя. Но это особо сильно ничего не изменит.

А если так уж сильно хочется, можно всё запихать в один файл через if () или switch ()
EvroStandart вне форума  
Старый 03.08.2005, 19:28     # 6
Sensey
Junior Member
 
Регистрация: 25.12.2002
Сообщения: 114

Sensey Нимб уже пробиваетсяSensey Нимб уже пробивается
ac2on
Не надо все пихать в один файл... ножно распределять код по файлам в зависимости от использование этого самого кода...

Все таки легче подключить маленькие но используемы файлы... чем грузить один файл в память... и только часть этого файла использовать...
__________________
PHP+MySQL
Sensey вне форума  
Старый 15.08.2005, 09:56     # 7
ac2on
Junior Member
 
Регистрация: 28.07.2005
Адрес: Ставрополь
Сообщения: 90

ac2on Известность не заставит себя ждать
Цитата:
Сообщение от Sensey
ac2on
Все таки легче подключить маленькие но используемы файлы... чем грузить один файл в память... и только часть этого файла использовать...
Ну это и так понятно.... Теперь стоит другая задача. Как организовать разделение результатов поиска в базе данных на страницы.
У меня в файл, в котором происходит вывод, данные для организации запроса передаются через POST. Как сохранить эти данные при повторной загрузки страницы?
Пробывал делать глобальную переменную - что то не получается
Передача самого сформированного запроса в качестве входной переменной тоже успехов не дала... Толи запрос слишком длинный, толи руки кривые...
Посоветуйте как лучше сделать... А то как то 900 записей прокручивать тоже не хорошо....
Пример работы можно посмотреть на _http:\\84.54.203.234\base
Ну или ткните носом, где почитать...
ac2on вне форума  
Старый 15.08.2005, 10:17     # 8
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
Цитата:
ac2on:
Теперь стоит другая задача. Как организовать разделение результатов поиска в базе данных на страницы.
параметр limit запроса, если речь идет о MySQL

Цитата:
ac2on:
Как сохранить эти данные при повторной загрузки страницы?
Например в сессии.
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  
Старый 15.08.2005, 14:50     # 9
ac2on
Junior Member
 
Регистрация: 28.07.2005
Адрес: Ставрополь
Сообщения: 90

ac2on Известность не заставит себя ждать
Цитата:
Сообщение от Hubbitus
параметр limit запроса, если речь идет о MySQL
Ну у меня база MS Access рабоает через ODBC. Я попробывал привязать limit к запросу. Но мне сразу выдали ошибку запроса...

Цитата:
Например в сессии.
А вот с этого места по подробнее.
Просто я только начинаю осваивать PHP поэтому многие вещи не совсем понятны и не знакомы.
ac2on вне форума  
Старый 15.08.2005, 16:18     # 10
EvroStandart
Full Member
 
Аватар для EvroStandart
 
Регистрация: 20.01.2004
Адрес: Таллинн
Пол: Male
Сообщения: 623

EvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собой
Как говорится, RTFM!
http://www.php.net/manual/en/function.session-start.php
http://php.spb.ru/php/session.html
EvroStandart вне форума  
Старый 16.08.2005, 10:20     # 11
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
Цитата:
ac2on:
Ну у меня база MS Access рабоает через ODBC. Я попробывал привязать limit к запросу. Но мне сразу выдали ошибку запроса...
C Access сложнее, там геморно это реализовано, также как в MSSQ Server, нету как таковых инструкций чтобы получить с какой-то по какую-то записи, есть только TOP, чтобы получить сколько-то конкретно. Какраз недавно с этим разбирался, вот тут есть несколько вариантов решения данной задачи. Я лично выбрал 4 как наиболее универсальный и быстрый (правда в нем есть и малюсенькое неудобство, которое мне так и не удалось решить, кстати буду очень благодарен если кто подскажет как - читайте там верхний комментарий), незнаю точно как в Access, но я оформил это в виде хранимой процедуры, и теперь всегда ей пользуюсь в подобных случаях.

Ну а по сессиям уже подсказали ссылки - читайте МАН.
И неплохая ссылочка в догонку с разъяснениями http://php.spb.ru/php/session.html
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.

Последний раз редактировалось Hubbitus; 16.08.2005 в 10:22.
Hubbitus вне форума  
Старый 16.08.2005, 15:21     # 12
ac2on
Junior Member
 
Регистрация: 28.07.2005
Адрес: Ставрополь
Сообщения: 90

ac2on Известность не заставит себя ждать
Спасибо за RTFM. С сесиями разобрался, теперь другой вопрос... Как получить ссылку, с которой пришел пользователь.
А то получается, что сесия создается, а если пользователь пытается сформировать новый запрос, то используется старая сесия, и возращаются результаты первоначального запроса.
Я решил этот вопрос передачей дополнительной переменной.
Вот такой код:
if ($_GET['act']==$_GET['page']){
session_unregister('zapr');
}
После этого переменная $act передается вместе с номерами страниц, но не равная тому значению, с которым была первый раз передана.

Но хотелось бы решить этот вопрос определением того, от куда пришел пользователь: если со страницы формирования запроса, то создается новая сесия. Если пришел по ссылке на новую страницу, то использовалась существующая сесия.
И как сделать так, что бы когда человек уходил со страницы, не закрывая окна, то автоматический закрывалась сесия.
ac2on вне форума  
Старый 17.08.2005, 09:56     # 13
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
Цитата:
ac2on:
А то получается, что сесия создается, а если пользователь пытается сформировать новый запрос, то используется старая сесия, и возращаются результаты первоначального запроса.
Почему так? Как только сформировали новый запрос, и кладите новый в сессию вместо старого - никаких проблем.

Цитата:
ac2on:
И как сделать так, что бы когда человек уходил со страницы, не закрывая окна, то автоматический закрывалась сесия.
session.cookie_lifetime = 0 (а также session.gc_maxlifetime и session.gc_probability)
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  
Старый 22.08.2005, 14:29     # 14
ac2on
Junior Member
 
Регистрация: 28.07.2005
Адрес: Ставрополь
Сообщения: 90

ac2on Известность не заставит себя ждать
Все, всем большое спасибо... Все получилось как и хотелось.
Большое спасибо за советы и помошь. Но что то кажется мне что это только начало
ac2on вне форума  


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 00:00.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.