![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
dailik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 30.12.2008 Репутация: нет Всего: нет |
Нужно реализовать вот что:
по календарю чел выберает дату -с и -до нажимает ОК и скрипт ищет -с это 'start_date' -до это 'expire_date' сейчас скрипт такой
есть числа (start_date 2012-09-16) до (expire_date 2012-09-25) там есть инфа если что-то есть в бд (с 2012-09-16 до 2012-09-25) выводится сообщение "занято" все работает, вопрос вот в чем как реализовать если чел выбрал даты (с 2012-09-20 до 2012-09-30) или (с 2012-09-10 до 2012-09-18... скрипт что я написал уже не работает в таком случае тоесть получается нужно както проверять и одно число слева или справа а не 2 разом, кто сталкивался может есть решение ? |
|||
|
||||
Sanchezzz |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1670 Регистрация: 19.11.2006 Где: Voronezh Репутация: 41 Всего: 60 |
еще раз прочитайте свой вопрос и перефразируйте а то честно не понял суть вопроса.
-------------------- Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS. |
|||
|
||||
dailik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 30.12.2008 Репутация: нет Всего: нет |
если я у меня в базе заполненны данные с числа 16 по 25 и я ищу с сайта
например выбрав число с 17 по 24 то скрипт выводит ошибку что в данные даты обьект занят если выбрать 20-22 тоже выводится нужное сообщение, но если я выберу число с 10 по 19 например, то мне выводится сообщение что можно забронировать когда у меня с 16 по 25 занято! значит с 10 по 15 можно а вот 16,17,18,19 занято тоесть число "19" не проверилось... надеюсь понятно ? : ) Это сообщение отредактировал(а) dailik - 16.9.2012, 13:11 |
|||
|
||||
Sanchezzz |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1670 Регистрация: 19.11.2006 Где: Voronezh Репутация: 41 Всего: 60 |
сравнивайте только с одним полем expire_date от expire_date и до expire_date
либо я опять вас не понял) Это сообщение отредактировал(а) Sanchezzz - 16.9.2012, 13:29 -------------------- Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS. |
|||
|
||||
dailik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 30.12.2008 Репутация: нет Всего: нет |
это не то,
еслиб у меня было в бд только expire тогда еще можно но у меня start и рядом expire нужно сделать так чтоб если выбранное число start или expire попадает в те числа которые имеются в бд то выводило сообщение что одно из чисел занято, а щас скрипт проверяет только 2 числа вместе, а по одному не проверяет. я добавляя обьект указываю с какого(start) числа до какого(expire) числа он занят, если человек выберит даты в которые уже занят обьект и оплатит тогда беда... может мне опеределять числа между ними и через цикл проверять как то ? прикрепил снимок с бд Присоединённый файл ( Кол-во скачиваний: 10 ) ![]() |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
dailik, Тренируйтесь объяснять задачу другим людям. В жизни очень пригодится.
Насколько я понял, в базе храниться информация о "свободности" неких ресурсов (для определенности назовем их "номер в гостинице") и требуется зарезервировать их клиенту (туристу), Турист указывает диапазон дат, когда он намерен появится в гостинице и нужно выбрать все свободные номера. Тоесть туриста на пару дней можно подселить в один номер, а потом на оставшееся время - в другой? -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
dailik |
|
||||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 30.12.2008 Репутация: нет Всего: нет |
нет просто вывести сообщение что занято. ну как мне еще обьяснить давайте начнем с того что вот этот скрипт проверяет ?
он проверяет допустим на сайте выбрал числа с 1 сентября до 5 сентября, нажимаю ок и скрипт проверит start_date <= '1 сентября' AND expire_date >= '5 сентября' допустим у меня в базе current_books есть строка в которой находится id------Start ------------|----- Expire-----------Price 587---3 сентября-----|-----4 сентября------400$ скрипт выведет Zanyato так ? Это сообщение отредактировал(а) dailik - 16.9.2012, 14:20 |
||||
|
|||||
rodnover |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 223 Регистрация: 7.4.2009 Репутация: 1 Всего: 10 |
По-идее полностью свободных варианов только 2:
1. d_books.start_date > $expire 2. d_books.expire_date < $start частичная занятость: если d_books.start_date > $start, то свободны все дни от $start до d_books.start_date, если d_books.expire_date < $expire - свободны все дни от d_books.expire_date до $expire.
Выведет количество свободных дней от начала периода требования до начала чего-то там (что в d_books хранится) и от конца чего-то там, до конца периода требования. Примерно так, надеюсь, суть ясна. Это сообщение отредактировал(а) rodnover - 16.9.2012, 14:30 |
|||
|
||||
ksnk |
|
||||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Чем это скрипт не подошел? Выводит что-нибудь - есть свободные номера. Не выводит ничего - все номера заняты. -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
||||
|
|||||
dailik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 30.12.2008 Репутация: нет Всего: нет |
я вставил этот скрипт но попрежнему почти также получается, и попробовал поменять <= >= давай венемся к моему скрипту вот это с 1 сентября по 5 сентября по сути 2 дня заняты значит все верно выводит и говорит что занято, а если я выберу с 3 сентября по 15 сентября то скрипт мне выводит что свободно! но не свободно потому что 3-4 сентября занято, вот мне нужно чтоб опознал ети 2 дня и сказал что занято... если и щас никто не поймет то всеравно всем большое спасибо ))) пойду и буду писать скрипт который каждый день будет вносить в бд и по ним будут проверять когда занято... |
|||
|
||||
rodnover |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 223 Регистрация: 7.4.2009 Репутация: 1 Всего: 10 |
Это не рабочий скрипт - это идея. На вывод свободных дней, если не весь период занят. Я просто понял, что нужно указать пользователю свободный регион. Для вывода только если полностью свободный период проверяй по этими условиями
Если этот код вернет хоть одну запись, значит, в указанном периоде что-то занято. Если не вернет ни одной - период полностью свободен. P.S. полезно рисовать интервалы, как 7 классе на алгербре, для решения неравенств. |
||||
|
|||||
dailik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 30.12.2008 Репутация: нет Всего: нет |
||||
|
||||
rodnover |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 223 Регистрация: 7.4.2009 Репутация: 1 Всего: 10 |
Всегда пожалуйста.
Правильно заданный вопрос - 50% решения задачи. ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |