Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]plan pracy
skabszo
post
Post #1





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 27.08.2004

Ostrzeżenie: (0%)
-----


witam chcę stworzyć skrypt który polega na tym iż użytkownik wyznacza godziny w których chce pracować. Jest siedem dni tygodnia i do każdego są dwa pola rozwijane:
  1. <form action="" method="post" name="worklog">
  2. <p>monday</p>
  3. <select name="monday_start">
  4. <option>6:00</option>
  5. <option>7:00</option>
  6. <option>8:00</option>
  7. <option>9:00</option>
  8. <option>10:00</option>
  9. <option>11:00</option>
  10. <option>12:00</option>
  11. <option>13:00</option>
  12. <option>14:00</option>
  13. <option>15:00</option>
  14. <option>16:00</option>
  15. <option>17:00</option>
  16. <option>18:00</option>
  17. <option>19:00</option>
  18. <option>20:00</option>
  19. <option>21:00</option>
  20. <option>22:00</option>
  21. <option>OFF</option>
  22. <select name="monday_stop">
  23. <option>6:00</option>
  24. <option>7:00</option>
  25. <option>8:00</option>
  26. <option>9:00</option>
  27. <option>10:00</option>
  28. <option>11:00</option>
  29. <option>12:00</option>
  30. <option>13:00</option>
  31. <option>14:00</option>
  32. <option>15:00</option>
  33. <option>16:00</option>
  34. <option>17:00</option>
  35. <option>18:00</option>
  36. <option>19:00</option>
  37. <option>20:00</option>
  38. <option>21:00</option>
  39. <option>22:00</option>
  40. <option>OFF</option>
  41. <p>tuesday</p>
  42. <select name="tuesday_start">
  43. <option>6:00</option>
  44. <option>7:00</option>
  45. <option>8:00</option>
  46. <option>9:00</option>
  47. <option>10:00</option>
  48. <option>11:00</option>
  49. <option>12:00</option>
  50. <option>13:00</option>
  51. <option>14:00</option>
  52. <option>15:00</option>
  53. <option>16:00</option>
  54. <option>17:00</option>
  55. <option>18:00</option>
  56. <option>19:00</option>
  57. <option>20:00</option>
  58. <option>21:00</option>
  59. <option>22:00</option>
  60. <option>OFF</option>
  61. <select name="tuesday_stop">
  62. <option>6:00</option>
  63. <option>7:00</option>
  64. <option>8:00</option>
  65. <option>9:00</option>
  66. <option>10:00</option>
  67. <option>11:00</option>
  68. <option>12:00</option>
  69. <option>13:00</option>
  70. <option>14:00</option>
  71. <option>15:00</option>
  72. <option>16:00</option>
  73. <option>17:00</option>
  74. <option>18:00</option>
  75. <option>19:00</option>
  76. <option>20:00</option>
  77. <option>21:00</option>
  78. <option>22:00</option>
  79. <option>OFF</option>
  80. <p>wednesday</p>
  81. <select name="wednesday_start">
  82. <option>6:00</option>
  83. <option>7:00</option>
  84. <option>8:00</option>
  85. <option>9:00</option>
  86. <option>10:00</option>
  87. <option>11:00</option>
  88. <option>12:00</option>
  89. <option>13:00</option>
  90. <option>14:00</option>
  91. <option>15:00</option>
  92. <option>16:00</option>
  93. <option>17:00</option>
  94. <option>18:00</option>
  95. <option>19:00</option>
  96. <option>20:00</option>
  97. <option>21:00</option>
  98. <option>22:00</option>
  99. <option>OFF</option>
  100. <select name="wednesday_stop">
  101. <option>6:00</option>
  102. <option>7:00</option>
  103. <option>8:00</option>
  104. <option>9:00</option>
  105. <option>10:00</option>
  106. <option>11:00</option>
  107. <option>12:00</option>
  108. <option>13:00</option>
  109. <option>14:00</option>
  110. <option>15:00</option>
  111. <option>16:00</option>
  112. <option>17:00</option>
  113. <option>18:00</option>
  114. <option>19:00</option>
  115. <option>20:00</option>
  116. <option>21:00</option>
  117. <option>22:00</option>
  118. <option>OFF</option>
  119. <p>thursday</p>
  120. <select name="thursday_start">
  121. <option>6:00</option>
  122. <option>7:00</option>
  123. <option>8:00</option>
  124. <option>9:00</option>
  125. <option>10:00</option>
  126. <option>11:00</option>
  127. <option>12:00</option>
  128. <option>13:00</option>
  129. <option>14:00</option>
  130. <option>15:00</option>
  131. <option>16:00</option>
  132. <option>17:00</option>
  133. <option>18:00</option>
  134. <option>19:00</option>
  135. <option>20:00</option>
  136. <option>21:00</option>
  137. <option>22:00</option>
  138. <option>OFF</option>
  139. <select name="thursday_stop">
  140. <option>6:00</option>
  141. <option>7:00</option>
  142. <option>8:00</option>
  143. <option>9:00</option>
  144. <option>10:00</option>
  145. <option>11:00</option>
  146. <option>12:00</option>
  147. <option>13:00</option>
  148. <option>14:00</option>
  149. <option>15:00</option>
  150. <option>16:00</option>
  151. <option>17:00</option>
  152. <option>18:00</option>
  153. <option>19:00</option>
  154. <option>20:00</option>
  155. <option>21:00</option>
  156. <option>22:00</option>
  157. <option>OFF</option>
  158. <p>friday</p>
  159. <select name="friday_start">
  160. <option>6:00</option>
  161. <option>7:00</option>
  162. <option>8:00</option>
  163. <option>9:00</option>
  164. <option>10:00</option>
  165. <option>11:00</option>
  166. <option>12:00</option>
  167. <option>13:00</option>
  168. <option>14:00</option>
  169. <option>15:00</option>
  170. <option>16:00</option>
  171. <option>17:00</option>
  172. <option>18:00</option>
  173. <option>19:00</option>
  174. <option>20:00</option>
  175. <option>21:00</option>
  176. <option>22:00</option>
  177. <option>OFF</option>
  178. <select name="friday_stop">
  179. <option>6:00</option>
  180. <option>7:00</option>
  181. <option>8:00</option>
  182. <option>9:00</option>
  183. <option>10:00</option>
  184. <option>11:00</option>
  185. <option>12:00</option>
  186. <option>13:00</option>
  187. <option>14:00</option>
  188. <option>15:00</option>
  189. <option>16:00</option>
  190. <option>17:00</option>
  191. <option>18:00</option>
  192. <option>19:00</option>
  193. <option>20:00</option>
  194. <option>21:00</option>
  195. <option>22:00</option>
  196. <option>OFF</option>
  197. <p>saturday</p>
  198. <select name="saturday_start">
  199. <option>6:00</option>
  200. <option>7:00</option>
  201. <option>8:00</option>
  202. <option>9:00</option>
  203. <option>10:00</option>
  204. <option>11:00</option>
  205. <option>12:00</option>
  206. <option>13:00</option>
  207. <option>14:00</option>
  208. <option>15:00</option>
  209. <option>16:00</option>
  210. <option>17:00</option>
  211. <option>18:00</option>
  212. <option>19:00</option>
  213. <option>20:00</option>
  214. <option>21:00</option>
  215. <option>22:00</option>
  216. <option>OFF</option>
  217. <select name="saturday_stop">
  218. <option>6:00</option>
  219. <option>7:00</option>
  220. <option>8:00</option>
  221. <option>9:00</option>
  222. <option>10:00</option>
  223. <option>11:00</option>
  224. <option>12:00</option>
  225. <option>13:00</option>
  226. <option>14:00</option>
  227. <option>15:00</option>
  228. <option>16:00</option>
  229. <option>17:00</option>
  230. <option>18:00</option>
  231. <option>19:00</option>
  232. <option>20:00</option>
  233. <option>21:00</option>
  234. <option>22:00</option>
  235. <option>OFF</option>
  236. <p>sunday</p>
  237. <select name="sunday_start">
  238. <option>6:00</option>
  239. <option>7:00</option>
  240. <option>8:00</option>
  241. <option>9:00</option>
  242. <option>10:00</option>
  243. <option>11:00</option>
  244. <option>12:00</option>
  245. <option>13:00</option>
  246. <option>14:00</option>
  247. <option>15:00</option>
  248. <option>16:00</option>
  249. <option>17:00</option>
  250. <option>18:00</option>
  251. <option>19:00</option>
  252. <option>20:00</option>
  253. <option>21:00</option>
  254. <option>22:00</option>
  255. <option>OFF</option>
  256. <select name="sunday_stop">
  257. <option>6:00</option>
  258. <option>7:00</option>
  259. <option>8:00</option>
  260. <option>9:00</option>
  261. <option>10:00</option>
  262. <option>11:00</option>
  263. <option>12:00</option>
  264. <option>13:00</option>
  265. <option>14:00</option>
  266. <option>15:00</option>
  267. <option>16:00</option>
  268. <option>17:00</option>
  269. <option>18:00</option>
  270. <option>19:00</option>
  271. <option>20:00</option>
  272. <option>21:00</option>
  273. <option>22:00</option>
  274. <option>OFF</option>
  275. <input type="submit" name="wyslij" value="wyslij_dane">
  276. </form>
OFF oznacza wolne. Po wypełnieniu całości i kliknięcu na wyslij chcę by dane zostały zapisane do bazy mysql. Baza ta składa się z 2 tabel:
+ users - gdzie są pola id,username,password
+ worklog - z polami id,user_id,data,start_time,end_time
Nie wiem czy ta druga tabela jest dobrze skonstruowana - generalnie mam prosty system logowania który korzysta z tabeli users i chcę by po zalogowaniu użytkownik mógł własnie wypełnić i wysłać do bazy te dane. Problemem dla mnie jest kilka kwestii:
1. Czynność wypełniania formularza powtarzać się będzie co tydzień więc jak zrobić by w bazie trzymane były tylko dane ze ściśle określonego tygodnia np 10.01.2010-16.01.2010?
2. czy w związku z pytaniem nr 1 okresy tych tygodni muszę ustalać na sztywno w pliku czy za pomocą jakieś funkcji mogę po prostu określić sobie interwał?
3. Znalazłem sobie w internecie bibliotekę simpleXML za pomocą której chciałbym dane zapisywać sobie do pliku - by po odpaleniu plik.xml byliby wyszczególnieni wszyscy z bazy z podziałem na dni tygodnia i godziny w których mogą pracować. Czy ta biblioteka jest dobra to tego celu czy istnieje jakieś lepsze rozwiazanie?

prosiłbym o wszelkie wskazówki (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
sunpietro
post
Post #2





Grupa: Zarejestrowani
Postów: 262
Pomógł: 26
Dołączył: 23.01.2009
Skąd: eZ Systems

Ostrzeżenie: (0%)
-----


Mam nadzieję, że te selecty masz w jakiejś klasie je generującej.
Bo takie kopiowanie tych selectów jest po prostu nienajlepszą techniką kodowania.
Go to the top of the page
+Quote Post
skabszo
post
Post #3





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 27.08.2004

Ostrzeżenie: (0%)
-----


no tak oczywiście że będzie klasa generująca. Generalnie bardziej mi chodzi o pozostałe kwestie..
Go to the top of the page
+Quote Post
reaktor
post
Post #4





Grupa: Zarejestrowani
Postów: 18
Pomógł: 1
Dołączył: 2.01.2010

Ostrzeżenie: (0%)
-----


Dlaczego w bazie musza byc dane tylko z ostatniego tygodnia? Po prostu dodawaj kolejne rekordy, ale zostaw historie -pobieranie danych tylko za aktualny tydzien nie bedzie wcale trudne, za to bedzie widac kto kiedy pracowal (IMG:style_emoticons/default/smile.gif)
Ale jesli tak byc musi, to mozesz stworzyc skrypt kasujacy zeszly tydzien, ktory bedzie uruchamiany np w poniedzialek o godz 00.01

Do zorientowania sie w calym tym tygodniowym balaganie moga Ci przydac takie konstrukcje:
  1.  
  2. echo "Data poczatku ostatniego tygodnia: " . date("Y-m-d", strtotime("last week")) . "\n";
  3. echo "Data najblizszej srody: " . date("Y-m-d", strtotime("next wednesday"));

Go to the top of the page
+Quote Post
skabszo
post
Post #5





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 27.08.2004

Ostrzeżenie: (0%)
-----


a do historii w takim razie musiałbym stworzyć pewnei nową tabelę worklog_history tak? (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
reaktor
post
Post #6





Grupa: Zarejestrowani
Postów: 18
Pomógł: 1
Dołączył: 2.01.2010

Ostrzeżenie: (0%)
-----


Ależ skąd, wszystko będzie w worklog; musisz tylko dbac o to, aby wstawiajac dane np za czwartek prawidlowo wyliczyc wartosc do wstawienia w kolumnie `date`. Zeby zobaczyc aktualny plan pobieral bedziesz sobie tylko najswiezszy tydzien.
O "performans" bym sie na Twoim miejscu nie martwil (IMG:style_emoticons/default/winksmiley.jpg) , zaloz tylko indeksy na `user_id` oraz `date`.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 16.09.2025 - 17:43