Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] Sprawdzanie dwóch pól data i status
Forum PHP.pl > Forum > Przedszkole
redelek
Witam,

Mam taki problemik.

W bazie danych mam pole data_zakonczenia i status.

Pole data zawiera taką treść 2008-07-30 14:31:00
Pole status może zawierać 0 - zadanie rozpoczęte 1 - zadanie po terminie 5 - zadanie zamknięte

Zrobiłem pliczek który automatycznie sprawdza zadania i zmienia im statusy.
  1. <?php
  2. include ('lib.inc.php');
  3. //------------- Wyciganie wszystkich rekordw a bazy -----------------------
  4. $cnt=0;
  5. mysql_select_db($My_baza) or die (mysql_error());
  6. $dt_now=date('Y-m-d H:i:00');
  7. $zapytanie = "SELECT id, login, tytul, opis, data_rozpoczecia, data_zakonczenia, status F
    ROM z
  8. dania";
  9. //echo $zapytanie;
  10. $wynik = mysql_query($zapytanie) or die(mysql_error());
  11. $rek= mysql_num_rows($wynik);
  12.  
  13. if( $rek == 0)
  14. {
  15. echo "ERROR baza jest pusta!";
  16. } 
  17. else
  18. { 
  19.  
  20. while(list($id, $login, $tytul, $opis, $data_rozpoczecia, $data_zakonczenia,$status) = mysql_fetch_array($wynik))
  21. {
  22.  
  23.  //$cnt++;
  24. if ($status == 5){
  25. echo "$tytul - <font color=blue>ZAMKNIETE</font><br />";
  26.  
  27. }
  28. if ($dt_now > $data_zakonczenia){
  29. echo "$tytul - Zadanie po terminie !!!!<br />";
  30. }
  31.  
  32. }
  33.  
  34. };
  35. ?>


Na razie wyświetla je, ale docelowo będzie wydawał polecenie UPDATE.

Problem w tym , że zadanie po terminie ma status 0 gdy data $dt_now jest większa to dopiero zostanie mu zmieniony status na 1 - po terminie.
Zadanie które ma status 5 - czyli zamknięte wiadomo , że będzie miał date po z przekroczonym terminem i w moim skrypcie to wyświetla go dwa razy jako zamknięte i jako po terminie.

Problem w tym, że nie umiem sprawdzić jednocześnie statusu i daty.
chodzi mi o coś takiego

Jeśli $dt_now > $daty_zakonczenia i status jest 0 to zmień na status na 1,
jeżeli $dt_now > $daty_zakonczenia a status jest 5 nic nie rób,
Jeżeli $dt_now == $daty_zakonczenia a status jest 0 wyslij mail o przypomnieniu

Może ktoś z Państwa mi w tym pomóc jak połączyć sprawdzanie daty ze statusem ?

Pozdrawiam
Redelek
JoShiMa
Chodzi Ci o coś takiego:

  1. <?php
  2. if( $dt_now > $daty_zakonczenia and $status == 0){
  3. //to zmień na status na 1,
  4. }elseif($dt_now > $daty_zakonczenia and $status == 5){
  5. //nic nie rób,
  6. }elseif($dt_now == $daty_zakonczenia and $status == 0){
  7. //wyslij mail o przypomnieniu
  8. }
  9. ?>
kaem
Chyba coś źle zrozumiałem bo to nie może być takie proste snitch.gif Ale chodzi Ci o coś takiego?
  1. <?php
  2. while(list($id, $login, $tytul, $opis, $data_rozpoczecia, $data_zakonczenia,$status) = mysql_fetch_array($wynik))
  3. {
  4.  
  5.  //$cnt++;
  6. if ($status == 5 && $dt_now > $daty_zakonczenia){
  7. //nic nie rob
  8.  
  9. }
  10. else if ($dt_now > $data_zakonczenia && $status==0){
  11. //zmien status
  12. }
  13.  else if ($dt_now == $data_zakonczenia && $status==0){
  14. //wyslij mail
  15. }
  16. }
  17. ?>
redelek
ale jajo tak jest jak za długo się patrzy w kod idę na trawkę.

DZIĘKI PANOWIE , ALE GGGGGGG sciana.gif ŚCIANA smile.gif
JoShiMa
Cytat(redelek @ 30.07.2008, 15:53:33 ) *
DZIĘKI PANOWIE


I Panie aaevil.gif
redelek
Cytat(JoShiMa @ 30.07.2008, 13:57:20 ) *
I Panie aaevil.gif



Oj najmocniej przepraszam. Kłaniam się w pas Pani wstydnis.gif
Dziękuję za pomoc
nowotny
Cytat(redelek @ 30.07.2008, 16:04:21 ) *
Oj najmocniej przepraszam. Kłaniam się w pas Pani

OT: w swój pas się lepiej kłaniaj... winksmiley.jpg
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.