Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]Poprawne stosowanie funkcji DAYOFYEAR
Forum PHP.pl > Forum > Przedszkole
JamalBIG
Witam

Czy moglibyscie pomoc mi z tym kodem, chcialbym wyswietlic wszystkie rekordy z wczorajsza datą i nie wiem czy dobrze zastosowalem funkcje DAYOFYEAR.... Mam format czasu w bazie unixowy, ostatni wpis to data 1227022093

  1. <?php
  2. $today = date('z');
  3. $sql = "SELECT COUNT(user_id) AS userCount FROM ".$user_prefix."_users WHERE DAYOFYEAR(FROM_UNIXTIME(user_regdate)='34'";
  4. $query = $db->sql_query($sql);
  5. list($today_users) = $db->sql_fetchrow($query);
  6. $today_users = intval($today_users);
  7. ?>


Z gory dzieki za odpowiedz
Pozdrawiam
nevt
jeżeli potrzebujesz zawsze wczorajszej daty, to w ogóle nie stosuj tej funkcji...
  1. SELECT COUNT(`user_id`) AS `userCount` FROM `_users` WHERE DATEDIFF(NOW(), `user_regdate`) = 1;

a jeżeli już koniecznie chcesz z DAYOFYEAR:
  1. ... WHERE DAYOFYEAR(DATE(FROM_UNIXTIME(`user_regdate`)))=34;
JamalBIG
A czy to co tutaj mam jest poprawnie napisane, bo za bardzo nie mam zadnych wynikow...
  1. <?php
  2. $ty = time() - 86400;
  3. $yesterday = date('z', $ty);
  4. $sql = "SELECT COUNT(user_id) AS userCount FROM ".$user_prefix."_users WHERE DATE(FROM_UNIXTIME(user_regdate))='$yesterday'";
  5. ?>


Jak wogole mozna sprawdzic jaki jest wynik zapytania do bazy DATEDIFF(NOW(), user_regdate)?
nevt
zapytanie powyżej do niczego, sprawdź sobie w manualu co zwraca w php date() z formatem 'z' a co zwraca DATE() w MySQL... tego nie da się porównać, poza tym nie rób w php tego co baza może zrobić sama...
a co do mojego wyrażenia, to nie wierzysz, że jest poprawne? no to sprawdź:
  1. SELECT DATE(NOW) AS `teraz`, DATE(`user_regdate`) AS `rejestracja`, DATEDIFF(NOW(), `user_regdate`) AS `roznica` FROM `_users`;
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.