Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]funkcja del
Forum PHP.pl > Forum > Przedszkole
damian2601
Witam Serdecznie utworzyłem bazę danych dla pracowników z urlopami. Chodzi mi to o to że zrobilem żę no Damian Kowalski ma 5 dni urlopy zeszłorocznego i 10 dni tegorocznego i robie rezerwuj urlop np rezerwuje 6 dni i jak zrobie dodaj urlop to usunie mi sie w bazie danych ze zostalo mu jeszcze 9 dni tegorocznego ale jak mam opcje ze moge mu ten urlop usunąc to musi pojawić się ta sam liczba dni w zeszłorocznym i tegorocznym urlopie co bylo przed rezerwowaniem mam taka procedurę zrobioną zobaczcie

if (isset($_POST['dodaj_urlop']))
{

$urlop_sum=$urlop_z+$urlop_t;
$ilosc_urlopu=$ilosc_dni;
if ($urlop_sum>=$ilosc_dni){echo 'Dodaj urlop';
$query="INSERT INTO urlopy ( id_pracownika, urlop_od, urlop_do,ilosc_dni,wprowadzil) VALUES ('$id', '$od', '$do','$ilosc_dni','$uzytkownik')";
$result=mysql_query($query) or die('Bład dodania urlopu');
}
if ($urlop_z>=$ilosc_dni){$urlop_z=$urlop_z-$ilosc_dni;}
else if ($urlop_z<$ilosc_dni){$ilosc_dni=$ilosc_dni-$urlop_z;$urlop_z=0;}
//echo '<br>ilosc dni '.$ilosc_dnii;
if ($urlop_z==0 && $urlop_t>=$ilosc_dni){$urlop_t=$urlop_t-$ilosc_dni;}
if ($urlop_sum<$ilosc_dni){ echo 'Za duzo dni urlopu';$urlop_t=0;}
if ($urlop_sum>=$ilosc_urlopu){
$query1="update pracownicy set urlop_z='$urlop_z',urlop_t='$urlop_t' where id='$id'";
$result1=mysql_query($query1) or die('Blad update urlopy');}
$_GET[a]='0';

}

if ($_GET[a]=='del_urlop')
{


echo 'Kasowanie urlopu ';
$zapytanie = "DELETE FROM urlopy WHERE id=$id_kas";
$idzapytania = mysql_query($zapytanie);
$dodaj=$urlop_t_kas+$ilosc_dni_kas;
//echo $dodaj;
$query2="update pracownicy set urlop_t='$dodaj' where id='$id'";
$rresult1=mysql_query($query2) or die('Blad update urlopy');


}

$query="select * from pracownicy WHERE id='$id'";

te kasowanie mnie interesuje bo dodawanie jest dobrze ze usuwa z zeszłorocznego i tegorocznego
SUICIDE
W moim cmsie kasowanie treści wygląda w ten sposób

else if($_GET['a']=='del'){
$id = $_GET['id']; // pobranie id danego wpisu z przycisku deleete
@mysql_query("DELETE FROM oferta WHERE id='$id'")or die ("Bład zapytania DELETE"); // wykonanie zapytania kasującego dany rekord na podstawie wcześniej pobranego ID.
}

a przycisk wygląda w ten sposób:

<a href='edit_oferta.php?sk=managenews&id=".$n['id']."&a=del'><img border=0 src='img/delete.png' width='20' height='20'></a>
wNogachSpisz
Ja nigdy nic nie kasuje z bazy, tylko zmieniam status/stan.
damian2601
a co sądzisz jak mam to zrobić prosze pomóż mi bo usuwa ma urlop z historii tylko dodaje sie do urlopu terazniejszego a powinno tyle ile pobrano z zeszłego roku dodac i tyle ile pobrano z tegorocznego np mam

urlop zeszłoroczny = 5 dni
urlop tegoroczny = 10 dni


i rezerwuje 6 dni



i jak dodaj urlop to odejmie mi dobrze ze najpierw z zesłorocznego a później tegorocznego czyli zostaje
urlop zeszłoroczny = 0 dni
urlop tegoroczny = 9 dni

a jak zrobie skasuj urlop to mi robi że te 6 dni dodaje do tegorocznego to jest źle właśnie bo nie wiem póxneij ile miał pracownik urlopy zeszłorocznego i tegorocznego
r4xz
No dobra, ale po co robić to w sposób tak sztywny?

Masz gdzieś zapewne ustalone ile dni urlopu przysługuje na dany rok, więc przy dodawaniu urlopu pobierasz ile dni urlopu było w zeszłym roku (oraz ile w aktualnym) wykorzystanych. Następnie dodajesz po prostu do tabeli, która wygląda mniej-więcej jak poniżej, wpis:

urlop
id | urlop_na_dzien | za_rok

urlop_za_dzien - na jaki dzień dana os. bierze urlop (tak żeby mieć ładną historię wink.gif)
za_rok - oczywiste jak poprzednia kolumna


I mamy 3 przypadki:
1. albo dodaje na poprzedni rok (jeśli wykorzystanych z poprzedniego roku < dostępnych)
2. albo na aktualny (wykorzystanych z poprzedniego = dostepnych i wykorzystanych < dostepnych)
3. albo wyswietla ze wszystko jest wykorzystane (wykorzystane = dostepne)
przypadek 1 i 2 może się łączyć!

proste, skuteczne, i jest fajna historia smile.gif

----------------edit-----------
zapomniałem - weź sobie radę wNogachSpisz do serca, i choćby nie wiem co się działo nigdy* nie usuwaj nic z bazy danych
*ew. w skrajnych przypadkach jeśli jesteś sumienny i chcesz usunąć kogoś dane osobowe, ponieważ np. zrezygnuje z posiadania konta w danym serwisie
damian2601
patrz chodzi mi tu o to żę jak sie pomyle ile pracownik wziął urlopu to muszę zrobić skasuje urlop i powinno wrócić do poprzednich liczb np

zaeszłoroczny- 5
tegoroczny - 10


rezerwuje urlop 6 dni to zostaje 9 dni tegorocznego to jest dobrze

ale jak się pomylę to mam button skasuj urlop i powinny wrócić ze
zeszłoroczny - 5
tegoroczny 10


a robi mi odwrotnie dodaje te całe rezerwacji urlopu dni to tegorocznego urlop

to wyświetla się ze jest 15 dni tegorocznego
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.