Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Wiek i data urodzenia w MySQL
Zaszczyk
post
Post #1





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 23.08.2007

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


W bazie danych mam tablelę users i kolumne data w której zapisana jest data urodzenia w formacie date(YYYY-MM-DD) do tego stworzoną mam wyszukiwarkę która wyszukuje według kilkunastu różnych parametrów w tym według wieku podawanego jako liczba lat. I tutaj rodzi się mój problem, bowiem skoro przekazuję do skryptu tylko wiek według którego szukam jakiejś osoby np. 19-30 lat, to jak to teraz porównać z tym co mam w bazie? Szukałem w google i w manualu, ale nie potrafię złożyć sensownego zapytania które by działało.

Dzięki za pomoc
Go to the top of the page
+Quote Post
gitbejbe
post
Post #2





Grupa: Zarejestrowani
Postów: 516
Pomógł: 63
Dołączył: 27.08.2012

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


skoro masz podany wiek użytkownika, to możesz obliczyć w którym roku się urodził - odejmując od obecnej daty wiek użytkownika. Wynik wstawiasz do w warunku zapytania i włala : )

  1. $wiek_uzytkownika = 35; //np 35 lat
  2. $data = date("Y-m-d", strtotime ("-'.$wiek_uzytkownika.' year"));
  3. echo''.$data;


sprawdź czy działa. Dawno nie bawiłem się strtotime ;p W każdym razie trzeba iść w tym kierunku : ) Powodzenia !
Go to the top of the page
+Quote Post
Zaszczyk
post
Post #3





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 23.08.2007

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


Sam kod działa, wielkie dzięki za pomoc wink.gif ale coś nie działa mi warunek MySQL. Mam np takie zapytanie

  1. SELECT * FROM `users` WHERE DATA >=1995 -01 -13


i pokazuje mi rekordy które jako data mają i 1998-xx-xx i 1976-xx-xx, w czym tkwi problem?
Go to the top of the page
+Quote Post
mmmmmmm
post
Post #4





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

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


Aby wybrać 35-latków z bazy:
  1. SELECT * FROM `users` WHERE `data_urodzenia` BETWEEN DATE_SUB(now(), INTERVAL 36 YEARS) AND DATE_SUB(now(), INTERVAL 35 YEARS)
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 - 01:05