![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 50 Pomógł: 0 Dołączył: 11.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
Mam problem z data. Posiadam baze danych, w ktorej przy kazdym userze jest wpisana data urodzenia w formacie rrrr-mm-dd. Za pomoca skryptu potrzebuje okreslic wzgledem aktualnej daty czy dana osoba ma ukonczone 18 lat lub wiecej. Jak to wykonac? Jaka funkcje zastosowac, aby dokladnosc weryfikacji byla co do dnia?
PRZYKŁAD: data aktualna: 2006-06-27 data ur. usera: 1988-06-30 Jak to porownac w SELECT, aby wyciagnal rekordy tylko spełniające warunek ukonczenienia 18 lat. Ten post edytował luckyluc 27.06.2006, 18:12:10 |
|
|
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Jak to porownac w SELECT, Pytasz o bazki a dajesz w php... Przenoszehttp://dev.mysql.com/doc/refman/5.0/en/dat...-functions.html Milej lektury (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 50 Pomógł: 0 Dołączył: 11.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
Zastanowilem sie i mam taki pomysl:
1. dodac do kazdej daty przy userze 18 lat lub 216 miesiecy 2. okreslic aktualna date 3. porownac dwie daty i jezeli powiekszona o 18 lat data usera bedzie rowna lub miejsza od aktualnej to warunek bedzie spelniony. <?php $zapytanie = "SELECT * FROM tabela LEFT JOIN user ON (user.id=tabela.user AND NOW() >= DATE_ADD('user.data', INTERVAL 216 MONTH)) WHERE tabela.data='$data' ORDER BY tabela.data ASC, tabela.czas ASC"; ?> Na logike powinno dzialac, ale nie dziala. Czy ktos wie co moze byc zle ? Ten post edytował luckyluc 28.06.2006, 09:28:50 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 607 Pomógł: 23 Dołączył: 8.09.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
chcesz po prostu gotowca :]
masz podpowiedź: SELECT cos FROM tabela WHERE YEAR(urodzony)>1988= AND MONTH(urodzony)>=6 pisane z palca, powinno dzialac z dokladnością co do miesiąca, dalej kombinuj sam. P.S. Nie twierdzę, że nie ma innych rozwiązań... |
|
|
![]()
Post
#5
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
w linku co ci podalem, na samym początku masz przyklad
Zwraca ci to rekordy z ostatnich 30 dni. No to juz wystarczyla odrobiny wsyliku by zamienic DAY na YEAR, 30 na 18 oraz <= na >=
widzisz jakie proste (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) edit: nie dolukalem ze cos tam juz naskrobales (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 50 Pomógł: 0 Dołączył: 11.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
Przeczytalem cala strone, ktora podales. Nie oczekuje gotowego przykladu. Walcze i stosuje metode prob i bledu (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Z punkty logicznego podstawilem wszystko tak jak ma byc. Mimo wszystko nie dziala (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) Zauwazylem, ze jak wpisze date z klawiatury np. '2006-06-28' to jest wszystko ok. Problem pojawia sie gdy podam user.data. Dlaczego tak sie dzieje ?
$zapytanie = "SELECT * FROM glowna, user WHERE glowna.data='$data' AND INTERVAL 18 YEAR + user.data < NOW() AND user.id=glowna.user ORDER BY glowna.data ASC, glowna.czas ASC"; Ten post edytował luckyluc 28.06.2006, 09:38:13 |
|
|
![]()
Post
#7
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
user.data ma nie byc w ciapkach. no i czemu 216 MONTH? nie lepiej 18 YEAR?
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 50 Pomógł: 0 Dołączył: 11.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
user.data ma nie byc w ciapkach. no i czemu 216 MONTH? nie lepiej 18 YEAR? Probowalem rozne warianty i 18 YEAR i 216 MONTH. Zaden nie dziala. Wiem, ze ciapek ma nie byc. To byl stary przyklad. Dziwne, jest to, ze podana recznie 'data' dziala (IMG:http://forum.php.pl/style_emoticons/default/aaevil.gif) $zapytanie = "SELECT * FROM glowna, user WHERE glowna.data='$data' AND INTERVAL 18 YEAR + user.data < NOW() AND user.id=glowna.user ORDER BY glowna.data ASC, glowna.czas ASC"; Ten post edytował luckyluc 28.06.2006, 09:43:33 |
|
|
![]()
Post
#9
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
A czemu nie mozesz zastosowac zapytania co ci podalem? To twoje jakos mi podejrzanie wyglada (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
ps: no i uzywaj bbcode!!! |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 17:41 |