Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Вычислить время

Сообщения:  [1-10]   [11-14] 

 
 автор: Valick   (04.07.2011 в 11:05)   письмо автору
 
   для: imchip   (03.07.2011 в 21:08)
 

итак для начала в базе имеем 4 таблицы:
1 - таблица пользователей (по привычке user)
из которой нас интересует только поле id_user
остальные поля прроизвольные (имя, фамилия, отчество, дата рождения, семейное положение, образование и тд.)
2 - таблица оснований приходов и уходов ( osnov )
минимум 2 поля id_o | n_o
с такими значениями
0 - окончание смены
1 - начало смены
2 - начало обеденного перерыва
3 - конец обеденного перерыва
4 - начало ненормированного перерыва
5 - конец ненормированного перерыва
6 - вынужденное окончание смены
7 - больничный
8 - выход на работу в связи с производственной необходимостью
и т.д.
3 - таблица прихода ( prihod )
минимум 4 поля id_p | id_user | id_op | datime
id_p - идентификатор строрки (автоинкремент) int
id_user - идентификатор рабочего int
id_op - основание выхода на работу int
datime - дата и время datetime
4 - таблица ухода ( uhod )
минимум 4 поля id_u | id_user | id_ou | datime
id_u - идентификатор строрки (автоинкремент) int
id_user - идентификатор рабочего int
id_ou - основание выхода на работу int
datime - дата и время datetime
___
дополнительные поля пока для эксперемента, чтобы связать таблицы и привязать определенный уход с определенным приходом
скорее всего они будут нужны а посему выносим их в отдельную таблицу
5 - таблица связи ( pruh )
поля id_p | id_u - первичный ключь на оба поля

  Ответить  
 
 автор: MHz   (03.07.2011 в 23:38)   письмо автору
 
   для: imchip   (03.07.2011 в 16:01)
 

А как Вы определяете пришел человек или ушел?

  Ответить  
 
 автор: Valick   (03.07.2011 в 22:07)   письмо автору
 
   для: imchip   (03.07.2011 в 21:08)
 

Мой пример не может у Вас работать так как его попросту еще нет :)
для начала идея такая "приход на" и "уход с" записывать в раздельные таблицы
это позволит избавиться от UPDATE и использовать INSERT, а так же не накладывать ограничения на количество приходов и уходов в течение дня

  Ответить  
 
 автор: imchip   (03.07.2011 в 21:08)   письмо автору
 
   для: Valick   (03.07.2011 в 21:05)
 

Большое спасибо, если вы мне поможете, сейчас у меня работает ваш пример, но я его параллельно дорабатываю (считаю минуты, обеды, округляю делю на деньги)

  Ответить  
 
 автор: Valick   (03.07.2011 в 21:05)   письмо автору
 
   для: alexander95   (03.07.2011 в 19:05)
 

на самом деле на удивление этот класс тут нахрен не нужен... (хотя сам по себе он может даже лучше всех)
нужно применять то, что нужно а не тот о чем знаешь
данная задача тонкой красной линией ложиться на базу данных, меня попросили о примере и я в ближайшее время состряпаю код, можете тоже самое приминить сюда свой класс

  Ответить  
 
 автор: alexander95   (03.07.2011 в 19:05)   письмо автору
 
   для: imchip   (03.07.2011 в 16:01)
 

На самом деле, на удивление мало кодеров знают об вот этом стандартном, но очень удобном классе


Если бы побольше людей потрудилось прочитать эту часть мана, мы куда реже бы видели тут "Опять пхп и даты".

  Ответить  
 
 автор: imchip   (03.07.2011 в 18:13)   письмо автору
 
   для: Valick   (03.07.2011 в 17:33)
 

Не подскажеш примера?

  Ответить  
 
 автор: Valick   (03.07.2011 в 17:33)   письмо автору
 
   для: imchip   (03.07.2011 в 17:16)
 

да при том что РНР скрипт без базы и РНР скрипт с базой - это совершенно разные коды
использование БД только лишь для хранения переменных - это преступление (точнее ошибка начинающих)
на базу нужно "завязывать" как раз логику скрипта
в идеале из базы нужно извлекать уже готовую информацию, а РНР использовать только для вывода в браузер

  Ответить  
 
 автор: imchip   (03.07.2011 в 17:16)   письмо автору
 
   для: Valick   (03.07.2011 в 17:07)
 

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

  Ответить  
 
 автор: Valick   (03.07.2011 в 17:07)   письмо автору
 
   для: imchip   (03.07.2011 в 16:01)
 

Я не знаю, может есть более адекватные варианты подсета кол-ва отработанного времени?
есть, это использование базы данных
в которой фиксируете время прихода на работу и время ухода с работы (соответственно вместе с датой)
этой информацией можно будет "вертеть" как угодно
___
можно и обед учитывать и 15-ти минутные перерывы и больничные и еще много чего

  Ответить  

Сообщения:  [1-10]   [11-14] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования