Autor | Zpráva | ||
---|---|---|---|
LukasCZ Profil |
#1 · Zasláno: 13. 7. 2005, 23:45:50
Chtel bych poradit, jak zjistit aktualni vek z databaze, kde mam zadano datum, mesic a rok
$den=$radek["den"]; $mes=$radek["mesic"]; $rok=$radek["rok"]; // z techto udaju potrebuji vypsat aktualni vek uzivatele. a poté jak tuto funkci pouzit v mySQL dotazu. Např. aby to vypsalo uživatele ve věku 15-20 let. Předem díky moc za radu, případně odkazy (v češtině) |
||
Leo Profil |
#2 · Zasláno: 14. 7. 2005, 00:27:03
Nevim, jestli je rozumne mit na kalendarni datum v tabulce tri sloupce kdyz bohate staci jeden, treba s datovym typem DATE. Leo
|
||
WertriK Profil * |
#3 · Zasláno: 14. 7. 2005, 00:40:12
Napadla jen jedina pomerne jednoducha vec:
$den=$radek["den"]; $mes=$radek["mesic"]; $rok=$radek["rok"]; $cislo.= "$rok.$mes.$den"; // melo by z toho vylest neco jako 19920325 $datum = Date("Ymj"); // taky neco jako 20050714 // zalezi jak mas datum ulozene jestli s nulou nebo ne $rozdil = $datum-$cislo; a potom uz jen nejaka podminka if ($rozdil > 150000) { // pokud je starsi 15 let .... } A ten SQL dotaz nevim jestli by tak sel ale ja byc zkusil neco jako SELECT * FROM tabulka WHERE CONCAT(rok,mes,den)-$datum > 150000 ale jelikoz pres mysql moc nejsem(na to CONCAT jsem se tady ptal ;) ) tak bych rekl ze to tak spis nepujde jak pujde... |
||
Leo Profil |
#4 · Zasláno: 14. 7. 2005, 00:42:37
Zkuste si to jeste jednou po sove precist, mate pocit, ze to bude fungovat? :-) Kolik dnu rozdilu vam asi tak ujde pro data
20050701 a 20050630 :-)))) Leo |
||
WertriK Profil * |
#5 · Zasláno: 14. 7. 2005, 01:14:10
krapet chyba....vyhral jsi...;)
|
||
ash Profil |
#6 · Zasláno: 14. 7. 2005, 13:47:33
1. zmeň typ poľa v tabuľke na DATE, podstatne ti to uľahčí situáciu
2. výpis užívateľov vo veku 15-20 rokov: SELECT meno FROM tabulka WHERE DATE_ADD(dat_narodenia,INTERVAL 20 year)>=CURDATE() AND DATE_ADD(dat_narodenia,INTERVAL 15 year)<=CURDATE() tento spôsob počíta správne aj s priestupnými rokmi |
||
Časová prodleva: 19 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0