Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: kasowanie urlopu Baza danych
Forum PHP.pl > Forum > PHP
damian2601
witam serdecznie własnie zrobiłem sobie bazę danych z urlopami pracowników i mam problem z kasowaniem urlopu. np Jak pracownik ma 12 dni urlopu zeszłorocznego i 20 dni tegorocznego i chciałby zarezerwować 13 dni urlopu to fajnie najpierw usuwa z bazy danych z urlopu zeszłorocznego a później tegorocznego, ale mam problem ze by opcją kasowania urlopu np pracownik powie ze chce zmienić datę urlopu to ja kasuje urlop ale jest taki problem ze jak skasuje to skasowany urlop dodaje mi do tegorocznego a powinien tyle ile usunęło z zeszłorocznego usuneło powinno dodać jak i zarówno tegorocznego proszę o pomoc wysyłam procedurę


php
  1. if ($_GET[a]=='del_urlop')
  2. {
  3.  
  4.  
  5. echo 'Kasowanie urlopu ';
  6. $zapytanie = "DELETE FROM urlopy WHERE id=$id_kas";
  7. $idzapytania = mysql_query($zapytanie);
  8. $dodaj=$urlop_t_kas+$urlop_z_kas=$ilosc_dni_kas;
  9. echo $dodaj;
  10. $query2="update pracownicy set urlop_t='$dodaj' where id='$id'";
  11. $rresult1=mysql_query($query2) or die('Blad update urlopy');
  12.  
  13. }
  14.  
  15. $query="select * from pracownicy WHERE id='$id'";
  16.  
  17. $result=mysql_query($query)
  18. or die('Błąd zapytania');
  19. // print_r ($result);
  20. $dane_stawka=mysql_fetch_assoc($result);
  21.  
  22.  
  23. ?>
  24.  
  25. <form method="POST">
  26. <table cellpadding="2" class="dod">
  27. <caption class="dodblue">Zarezerwuj urlop</caption>
  28.  
  29. <tr><td><input size="15" id="f_date1"name="od" /><button id="f_btn1">od</button></td>
  30. <td><input type="text" size="15" id="f_date2" name="do" /><button id="f_btn2">do</button></td>
  31. <td><input type="text" size="5" name="ilosc_dni"/> ilosć dni</td></tr>
  32. </table>
  33. <input type="hidden" name="urlop_z" value="<? echo $dane_stawka[urlop_z];?>">
  34. <input type="hidden" name="urlop_t" value="<? echo $dane_stawka[urlop_t];?>">
  35.  
  36.  
  37. <input type="submit" name="dodaj_urlop" value="Zarezerwuj urlop"/>
  38. </form><br/><br/>
  39. <?
  40.  
  41. if (!$p) $p=0 ;
  42. $wynik = mysql_query("SELECT * FROM urlopy WHERE id_pracownika='$id'")
  43. or die('Błąd zapytania');
  44.  
  45.  
  46. if(isset($_GET)){
  47. $query = "select * from urlopy WHERE id_pracownika='$id' order by id asc LIMIT $p,10";
  48.  
  49. $result = mysql_query($query)
  50. or die('Błąd zapytania');
  51. $dane =mysql_num_rows($wynik);
  52. }
  53. else {
  54. $dane=1;
  55. }
  56.  
  57. //echo $p.'</br>';
  58. //print_r (mysql_FETCH_ASSOC($result));
  59. /*
  60. wy?wietlamy wyniki, sprawdzamy,
  61. czy zapytanie zwróciło warto?ć większš od 0
  62. */
  63. if(mysql_num_rows($result) > 0) {
  64. $r=0;
  65. ?>
  66.  
  67. <div class="tabele">
  68. <? $aquery="select * from pracownicy WHERE id='$id'";
  69.  
  70. $aresult=mysql_query($aquery)
  71. or die('Błąd zapytania');
  72. $adane_stawka=mysql_fetch_assoc($aresult);
  73. $urlop_t_kass=$adane_stawka[urlop_t];
  74. $urlop_z_kass=$adane_stawka[urlop_z];
  75.  
  76. /* jeżeli wynik jest pozytywny, to wyświetlamy dane */
  77. echo "<table cellpadding=\"2\" border=\"1\">";
  78. echo "<caption class='dodblue'>Urlopy wybrane</caption>
  79. <tr><td> Urlop od</td><td>Urlop do</td><td>dni urlopu</td></tr>";
  80. while($r = mysql_fetch_assoc($result)) {
  81. $urlop=$r['urlop_z']+$r['urlop_t'];
  82.  
  83. echo "<tr>";
  84. echo "<td>".$r['urlop_od']."</td>";
  85. echo "<td>".$r['urlop_do']."</td>";
  86. echo "<td>".$r['ilosc_dni']."</td>";
  87.  
  88. echo "<td>
  89. <a href=\"urlop_edit.php?a=del_urlop&amp;id={$id}&amp;id_kas=$r[id]&amp;urlop_t_kas=$adane_stawka[urlop_t]&amp;urlop_t_kas=$adane_stawka[urlop_t]&amp;ilosc_dni_kas=$r[ilosc_dni]\">Kasuj urlop</a>
  90. </td>";
  91. echo "</tr>";
  92. }
  93. echo "</table>";
  94. ?>
  95. </div>
  96. <?
  97. }
MickDev
Zainteresuj się tematami takimi jak: MVC, OOP oraz frameworki PHP. Zaoszczędzi Ci to przyszłej pracy wink.gif
sajegib
musisz zostawić gdzieś info ile było zeszłorocznego urlopu i w razie kasowania sie do tego odwołać, a przedmówcy proponuję polać bo dobrze mówi! Ale wszystko w swoim czasie
Riggs
Robię coś podobnego i moim zdaniem powinieneś zmienić podejście... Powinieneś mieć tabelę urlop_zaplanowany jak i urlop_wykorzystany. Wtedy przypadek który opisujesz nie będzie problemem.
pianta_d
A ja dodałbym do bazy jeszcze jedną tabelkę, w której przechowywałbym informacje o wykorzystanych urlopach (przykładowa struktura: id_pracownika, urlop_z_roku, ilosc_dni, ...).
Miałbyś wtedy kontrolę nad np. ilością dni urlopu wykorzysanego przez pracowników w danym roku.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.