Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL]Wyszukiwanie użytkowników po wieku
Forum PHP.pl > Forum > Przedszkole
trifek
Witam serdecznie,
Mam taką tabelę w bazie:
  1. CREATE TABLE IF NOT EXISTS `users` (
  2. `id` bigint(20) NOT NULL,
  3. `username` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
  4. `data_urodzenia` date NOT NULL,
  5. `kiedy_online` datetime DEFAULT NULL
  6. ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;


Mam formularz w którym użytkownicy mają 2 pola do wyszukiwania:
- wiek od
- wiek do
(mogą wypełnić oba lub tylko jedno).

Jak powinno wyglądać zapytanie żeby wyszukać użytkowników mających np. wiek od 18 do 25 lat?
DevRoll
Ja bym zrobił to tak
  1. $startYear = date("Y") - 23;
  2. $endYear = date("Y") - 18;

  1. SELECT * FROM users WHERE data_urodzenia BETWEEN {$startYear} AND {$endYear}


oczywiście "- X lat" pobierasz z formularza
trueblue
Możesz użyć:
- DATE_SUB/DATE_ADD + interwał 18 25 + CURDATE() + BETWEEN lub >= <=
- DATEDIFF, podzielić przez 365 i BETWEEN lub >= <=
trifek
takie coś nie działa:

  1.  
  2. SELECT * FROM `users` WHERE data_urodzenia BETWEEN '2014' AND '1925'
  3.  
mmmmmmm
1. jaka to data '1925'?
2. Napisałeś... Znajdź rekordy, dla których data_urodzenia jest w przedziale od 2014 do 1925
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.