![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 48 Pomógł: 0 Dołączył: 10.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Chcę napisać skrypt pokazujący urodziny użytkowników, którzy znajdują się bazie.
Pole data_urodzenia w bazie jest typu DATE (czyli np. 2010-01-01). Napisałem taki kod:
Problemem jest jeszcze to, iż nie do końca dobrze pokazuje mi nazwy miesięcy... Wyświetla mi tylko w przedostatnim, tj. 19-stym, rekordzie. Proszę o pomoc ![]() |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 495 Pomógł: 245 Dołączył: 1.07.2009 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
zainteresuj się funkcją strtotime. Fantastycznie "obrabia" wszystkie stringi datowe.
-------------------- Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami... -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc! -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 48 Pomógł: 0 Dołączył: 10.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
zainteresuj się funkcją strtotime. Fantastycznie "obrabia" wszystkie stringi datowe. Ok, to jest do wyświetlenia daty, ale jak zabrać się za posortowanie użytkowników wg daty najbliższych urodzin? |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 076 Pomógł: 62 Dołączył: 6.03.2005 Skąd: Wroc Ostrzeżenie: (0%) ![]() ![]() |
pisane z palca ale ogólnie użyłbym datediff()
Ten post edytował Darti 8.09.2010, 08:28:04 -------------------- The answer is out there, Neo. It's looking for you. And it will find you, if you want it to.
SERVER_SOFTWARE : Apache/2.2.4 (Win32) PHP/5.2.1 MySQL Client API version : 5.0.27 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 48 Pomógł: 0 Dołączył: 10.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Zrobiłem tak:
i jest Fatal error: Call to a member function fetch_assoc() on a non-object ![]() Ten post edytował nitroo 8.09.2010, 09:31:29 |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 1 076 Pomógł: 62 Dołączył: 6.03.2005 Skąd: Wroc Ostrzeżenie: (0%) ![]() ![]() |
to jest błąd php a nie mysql ... jak już to mysql_fetch_assoc()
-------------------- The answer is out there, Neo. It's looking for you. And it will find you, if you want it to.
SERVER_SOFTWARE : Apache/2.2.4 (Win32) PHP/5.2.1 MySQL Client API version : 5.0.27 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 48 Pomógł: 0 Dołączył: 10.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Zauważyłem w SQL, iż nie wykonuje się DATE_FORMAT('data_urodzenia','%m-%d'), tzn. jest równy NULL, a roznica jest nieznaną klauzurą where.
Ten post edytował nitroo 8.09.2010, 09:31:59 |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
1. Nazw pól w bazie nie dajemy w apostrofy
2. Funkcja datediff nie porówna dat w tym formacie 3. Where nie zadziała |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 48 Pomógł: 0 Dołączył: 10.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 226 Pomógł: 61 Dołączył: 20.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
Konwertuj sobie daty do formatu MMDD. Takie "daty" możesz sobie odejmować, porównywać, sortować, itp.
-------------------- |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
To co mam zrobić? Myśleć i korzystać z netu. 1. Podstawy składni SQL, nazwy pół dajemy albo bez niczego, typu select nazwa_pola albo w `` select `nazwa_pola` (taki piksel pod tyldą), jak dajesz funkdji date_format string typu 'blablabla' to chyba oczywiste, że nie zamieni tego na datę? 2. A jakiego formatu może oczekiwać datediff jak w bazie masz datę w formacie rrrr-mm-dd? Format mm-dd raczej nie zadziała i funkcja zwróci błąd lub wartość zero, musisz dodać rok. http://dev.mysql.com/doc/refman/5.1/en/dat...nction_datediff 3. Zamiast where użyj having. |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 48 Pomógł: 0 Dołączył: 10.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
A jak poradzić sobie w końcu z tymi nazwami miesiąca i dlaczego napisany przeze mnei sposób nie działa?
Jestem początkującym programistą i naprawdę nie mam zielonego pojęcia, jak poprawnie ma wyglądać to zapytanie SQL. Próbowałem różnymi metodami, ale przy DATEDIFF bierze mi pod uwagę rok, przez co źle oblicza mi osobę, która ma najbliższe urodziny. Może mi ktoś pomóc? Ten post edytował nitroo 9.09.2010, 10:18:06 |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 60 Pomógł: 0 Dołączył: 30.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 03:37 |