Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [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 smile.gif
Go to the top of the page
+Quote Post
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 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? 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 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
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 17:32