Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL]Sprawdzanie czy pole z datą jest puste
Czapla
post
Post #1





Grupa: Zarejestrowani
Postów: 130
Pomógł: 3
Dołączył: 10.12.2007
Skąd: Bielsko-Biała

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


W jaki sposób za pomocą funkcji php sprawdzić czy pole typu DATETIME jest puste? Zawartość 0000-00-00 00:00:00

Niby is_null() realizuje takie założenie ale nie wiem czy to dotyczy też pól typu DATETIME

Pokaże na przykladzie

  1. <?php
  2. $data_utworzenia = $_REQUEST['data_utworzenia'];
  3.  
  4.   $zapytanie = "REPLACE INTO przy_stat (id_statystyka, statystyka, data_utworzenia, data_modyfikacji, data_wyswietl
    e
  5. ia) VALUES ('";
  6.   $zapytanie .= (int)$ID_STATYSTYKA;
  7.   $zapytanie .= "','";
  8.   $zapytanie .= $statystyka; // liczba wyswietleń
  9.   if (is_null($data_utworzenia)) // is_null?
  10.   {
  11.    $zapytanie .= "',";
  12.    $zapytanie .= "NOW()";
  13.    $zapytanie .= ",";
  14.   }
  15.   else
  16.   {
  17.    $zapytanie .= "','";
  18.    $zapytanie .= $aDBC->FieldByName ('data_utworzenia');
  19.    $zapytanie .= "',";
  20.   }
  21.   $zapytanie .= "NOW()";// data_modyfikacji
  22.   $zapytanie .= ",'";
  23.   $zapytanie .= $aDBC->FieldByName ('data_wyświetlenia'); 
  24.   $zapytanie .= "'";
  25.   $zapytanie .= ")";
  26.   $aDBC->ExecSQL ($SQL); 
  27. ?>


Pozdrawiam

V
OK miałeś racje ja pochrzanilem skrypt [data_wyświetlenia'] smile.gif

Ten post edytował Czapla 3.09.2008, 12:33:24


--------------------
Life is a game, continue playing and try to be a pr0.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
skowron-line
post
Post #2





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


np.
Kod
// liczba wyswietleń
  if ($data_utworzenia == '0000-00-00 00:00:00')


Ten post edytował skowron-line 3.09.2008, 11:48:58


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
barthpl
post
Post #3





Grupa: Zarejestrowani
Postów: 142
Pomógł: 35
Dołączył: 5.12.2006
Skąd: Wrocław

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


Wydaje mi się że samo is_null nie wystarczy ponieważ dla:
  1. <?php
  2. $date = '0000-00-00 00:00:00';
  3. echo !is_null( $data ) ? '$date to nie null' : '$date to nie null';
  4. ?>
wynik jest: $date to nie null.

Wydaje mi się, że takie rozwiązanie jest ok:
  1. <?php
  2. function isDateNull( $date )
  3. {
  4. return !preg_match("/([0]{4})-([0]{2})-([0]{2}) ([0]{2}):([0]{2}):([0]{2})/", $date );
  5. /*  Można jeszcze to urozmaicić w następujący sposób:
  6. return !preg_match("/([0-9]{4})-([0-9]{2})-([0-9]{2}) ([0-9]{2}):([0-9]{2}):([0-9]{2})/", $date, $d );
  7. // W tablicy $d znajdą się wszystkie poszczególne elementy. 
  8. // Szięki temu można sprawdzić czy data to przypadkiem nie coś takiego:
  9. // 2008-99-32 45:90:12
  10. // Ale takie sprawdzanie to już kwestia tego skąd pobierasz tę datę.
  11. /*/
  12. }
  13.  
  14. $date[] = '0000-00-00 00:00:00';
  15. $date[] = '2008-01-12 00:00:00';
  16.  
  17. foreach( $date as $d )
  18. if( isDateNull($d) )
  19. echo $d.' is OK';
  20. ?>
jak się łatwo domyślić wynik jest następujący: 2008-01-12 00:00:00 is OK.

edit --> Kolegi wyżej rozwiązanie jest prostsze do zabicia muchy wyciągnąłem armatę, zdarza się winksmiley.jpg To bym poleciał jak faktycznie jeśli chcesz sprawdzić bardzo dokładnie tę datę.

Ten post edytował barthpl 3.09.2008, 11:56:18


--------------------
Jeżeli pomogłem rozwiązać Twój problem, kliknij pomógł.
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: 22.08.2025 - 00:00