![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
Dmitry_177 |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 418 Регистрация: 22.9.2006 Репутация: нет Всего: нет |
вывод таблицы:
так вот при выводе таблицы, мне нужно знать, есть ли в одном поле таблицы дата или нет.. вот так правильно будет, если поле с датой "date"?
или как-то еще надо определять на нулевую дату значение $select_arr['date']? |
||||
|
|||||
HotHead |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 26.10.2007 Репутация: 3 Всего: 4 |
Dmitry_177, посмотрите в структуре таблицы значение по умолчанию для этого поля. На него и надо проверять. Традиционно это строка '0000-00-00'.
|
|||
|
||||
Dmitry_177 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 418 Регистрация: 22.9.2006 Репутация: нет Всего: нет |
Я совсем забыл про empty
![]() |
|||
|
||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
Dmitry_177, а при чем здесь empty?
во-первых, эта функция проверяет существование переменной, а переменная однозначно есть. следовательно, половина функционала не используется. во-вторых, как тебе правильно указал HotHead, при наличии дефолтного значения в таблице будет '0000-00-00', а это не пустая строка. еще половина функционала долой. интересная получается мысль - пользоваться функцией, которая на 100% здесь не подходит. |
|||
|
||||
BuShaRt |
|
||||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1391 Регистрация: 29.6.2006 Репутация: 4 Всего: 6 |
Дату лучше всего хранить в int формате, а само содержимое должно являться UnixTime'ом.
Причем установить по умолчанию поле равное нулю. В таком случае
если структуру нельзя уже менять, тогда
|
||||
|
|||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
BuShaRt, вроде бы, HotHead выше показывал, почему empty не подходит для поля date
да и слово "лучше" стоит говорить с осторожностью. Всё-таки, скажем, дату рождения пока ещё не все системы могут хранить в поле типа int |
|||
|
||||
Astraller |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 1.8.2007 Где: $Украина[Кры м]->Феодосия Репутация: нет Всего: 5 |
Feldmarschall, учить матчасть! В особенности понятие timestamp.
-------------------- A.S.T.R.A.L.L.E.R.: Artificial Synthetic Technician Responsible for Assassination, Logical Learning and Efficient Repair |
|||
|
||||
HotHead |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 26.10.2007 Репутация: 3 Всего: 4 |
Ну тут много тонкостей. Я сам раньше хранил данные в основном в timestamp. Потом перешёл на date, т.к. в MySQL есть куча удобных встроенных функций для работы с датой. Dmitry_177 не говорил в чём он её хранит, так что я предположил что именно в date.
|
|||
|
||||
Dmitry_177 |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 418 Регистрация: 22.9.2006 Репутация: нет Всего: нет |
да, я в date храню.. кстати говорят что timestamp быстрей обрабатывается чем date.. интересно чем.. может знает кто? и еще такой вопрос про дату: как можно сравнить $select_arr['date'], если она там есть с текущей датой? вот так?
|
||||
|
|||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
врут.
сравнивать надо в запросе. но если надо именно в скрипте, скажем, чтобы раскрасить текущую дату, то да, примерно так. Но только чтобы функция, которую ты используешь в пхп для получения даты, возвращала строку в том же формате, в каком дата хранится в базе. getdate возвращает совсем не то что нужно |
|||
|
||||
Dmitry_177 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 418 Регистрация: 22.9.2006 Репутация: нет Всего: нет |
Да, мне нужно именно в скрипте.. Вот так работает =)))
И кстати empty корректно работает! если даты нету... строка ПУСТАЯ! если даты нет.. |
|||
|
||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
И ты так перебираешь все строки, коотрые лежат в базе - правильно?
|
|||
|
||||
Dmitry_177 |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 418 Регистрация: 22.9.2006 Репутация: нет Всего: нет |
нет, проверяю только дату.. а вывожу почти все строки из таблицы..
может это в последней версии PHP так сделали? у меня на компе все новенькое стоит..=))) Если в предыдущих версиях не так, то придется переделывать.. на хосте может одна из более старых версий PHP стоять.. Это сообщение отредактировал(а) Dmitry_177 - 13.12.2007, 23:38 |
||||
|
|||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
А что делаешь, если дата больше, и что - если нет?
А если пустая - что делаешь? Мне кажется, большую часть этих проверок можно убрать в запрос. по поводу empty - дело не в php. а в том, что в базе для этого поля у тебя нет значения по умолчанию. следовательно, туда пишется null. от этого будут проблемы в запросах. |
|||
|
||||
Dmitry_177 |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 418 Регистрация: 22.9.2006 Репутация: нет Всего: нет |
вывожу ВСЕ строки, делаю один запрос в БД и в цикле каждую строку вывожу.. Если даты нету или если меньше текущей, то добавляю определенную надпись в строке при выводе.. Если есть и она больше текущей то просто дату вывожу.. Я уже думал что-то с запросами придумать, но мне кажется как я делаю всеже для моей задачи лучший выриант..
при создании таблицы в БД я специально этому полю прописал DEFAULT NULL. А проблем в запросах из-за этого я пока что-то не наблюдал.. Это сообщение отредактировал(а) Dmitry_177 - 13.12.2007, 23:52 |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |