Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Potrebna ideja - Kako redjati rezultate iz baze po starosti ?

[es] :: PHP :: Potrebna ideja - Kako redjati rezultate iz baze po starosti ?

[ Pregleda: 1648 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Man-Wolf
Mihailo Joksimovic
Beograd

Član broj: 17016
Poruke: 873
*.eunet.yu.



+13 Profil

icon Potrebna ideja - Kako redjati rezultate iz baze po starosti ?07.09.2008. u 20:09 - pre 191 meseci
Ok, izvinjavam se ako naslov teme zvuci malo cudno, ali problem je u sledecem:

U bazi imam registrovane korisnike, i svakom je upisan datum rodjenja u bazu. E sad, treba da razvrstam korisnike po starosnim grupama:

Od 0-12 godina, od 12-19 god, ....

E sad, pitanje je kako to da uradim? Meni je palo na pamet sledece:

Da napravim skriptu koja ce da vadi sve rezultate iz baze, da za svakog izracuna koliko ima godina i da UPDATE-uje bazu. I naravno, napravim Cronjob koji bi pokretao tu skriptu svaki dan u 00h. Jedino sto me zanima, jeste, sta ako imam 10000 korisnika, sto znaci da bi svaki dan bilo po 10.000 upita u bazi (samo od ove skripte).

E sad, pretpostavljam da neko zna neki bolji nacin.

Hvala unapred,

Mihailo Joksimovic
 
Odgovor na temu

vatri
Banja Luka, RS

Član broj: 68697
Poruke: 1006
*.broadband.blic.net.



+18 Profil

icon Re: Potrebna ideja - Kako redjati rezultate iz baze po starosti ?07.09.2008. u 21:06 - pre 191 meseci
Zar nije lakse ovako:
Code:

select * from tabela where godine<12;

select * from tabela where godine>12 and godine<19;


i onda izlistas pomocu my fetch array...
 
Odgovor na temu

Nemanja Avramović
Engineering Manager
MENU Technologies
Beograd, Srbija

Moderator
Član broj: 32202
Poruke: 4391
79.101.71.*

Sajt: https://avramovic.info


+46 Profil

icon Re: Potrebna ideja - Kako redjati rezultate iz baze po starosti ?07.09.2008. u 21:12 - pre 191 meseci
On ima datum rođenja, a ne starost upisanu u bazi... Mada mislim da to neće biti neki problem, MySQL može da radi razne operacije sa datumima direktno u upitu, ali mislim da je to pre pitanje za MySQL forum...?
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
 
Odgovor na temu

agvozden
Aleksandar Gvozden
founder
Info-G
Beograd

Član broj: 37813
Poruke: 1123
*.dynamic.sbb.rs.

Sajt: www.gvozden.info


+68 Profil

icon Re: Potrebna ideja - Kako redjati rezultate iz baze po starosti ?07.09.2008. u 21:22 - pre 191 meseci
Zavisi kakav ti je format zapisa datuma, da li koristim mysql timestamp ili recimo int - kako ja koristim...

Ukoliko je timestamp onda mozes to da uradis to u sql-u, u protivnom preracunas u php-u i prema tome pravis upit...
 
Odgovor na temu

vatri
Banja Luka, RS

Član broj: 68697
Poruke: 1006
*.broadband.blic.net.



+18 Profil

icon Re: Potrebna ideja - Kako redjati rezultate iz baze po starosti ?07.09.2008. u 21:22 - pre 191 meseci
E sad tek vidim, moja greska. I ja mislim da je ovo vise za MySQL forum...
 
Odgovor na temu

Man-Wolf
Mihailo Joksimovic
Beograd

Član broj: 17016
Poruke: 873
*.eunet.yu.



+13 Profil

icon Re: Potrebna ideja - Kako redjati rezultate iz baze po starosti ?08.09.2008. u 03:00 - pre 191 meseci
Prvo, hvala svima koji su se potrudili da pomognu.

E sad, mene muci sledece: Nije meni problem da uvedem polje GODINE, i da onda prema njemu listam rezultate. To bi mi bilo najlakse. Samo jedini problem je sto je covek svake godine stariji godinu dana :-) Ovo sam vec pominjao, ali aj opet: Razmisljao sam da uradim skriptu koja ce se pokretati svako vece u 00:00 i za svakog korisnika racunati koliko ima godina i UPDATE-ovati bazu .... U ovom slucaju, zanima me, koliko bi opteretilo bazu, da na primer ima 10.000 korisnika (sto mu dodje 10.000 upita)? Pretpostavljam da bi je veoma opteretilo ....

Citat:
Nemanja Avramović: On ima datum rođenja, a ne starost upisanu u bazi... Mada mislim da to neće biti neki problem, MySQL može da radi razne operacije sa datumima direktno u upitu, ali mislim da je to pre pitanje za MySQL forum...?


Vidis, uopste nisam razmisljao u tom pravcu. Sacu bas da pogledam kako manipulisati datumima sa MySQL-om.

Citat:
agvozden: Zavisi kakav ti je format zapisa datuma, da li koristim mysql timestamp ili recimo int - kako ja koristim...

Ukoliko je timestamp onda mozes to da uradis to u sql-u, u protivnom preracunas u php-u i prema tome pravis upit...


Nije u pitanju timestamp (datumi su zapisani u ovom formatu: Dan-Mesec-Godina), mada sam razmisljao i o tome, ali ne mogu nikako da sastavim sve u celinu. Al cini mi se da se u ovom slucaju sve vrti oko funkcije mktime(). Ili gresim ? :-)

Uglavnom, sad cu da vidim kako bi to moglo preko MySQL-a, pa eto ako uspem, ostavicu ovde kako sam resio :-))

Jos jednom, hvala svima na pomoci :-)



 
Odgovor na temu

Man-Wolf
Mihailo Joksimovic
Beograd

Član broj: 17016
Poruke: 873
*.eunet.yu.



+13 Profil

icon Re: Potrebna ideja - Kako redjati rezultate iz baze po starosti ?08.09.2008. u 03:53 - pre 191 meseci
Ok, cini mi se da sam resio problem (nisam jos isprobao, ali bi trebalo da radi). Naime, MySQL podrzava u potpunosti poredjenje datuma u upitu.

Tako da, korisnike koji imaju od 0-12 godina selektujem ovako:

Code:

// Uzimamo danasnji dan + 1 dan vise:

$danas = date("Y-m-d", strtotime("+1 day")); // $danas dobija ovakvu vrednost(u slucaju danasnjeg dana): 2008-09-09

// Uzimamo datum od pre 12 godina (minus) -1 dan

$unazad = date("Y-m-d", strtotime("-12 year -1 day")); // $unazad = 1996-09-07

// Pravimo upit:

$query = "SELECT * FROM tabela WHERE datum_rodjenja BETWEEN '$unazad' AND '$danas'";



I tako dobijamo sve korisnike koji imaju od 0 (zvuci glupo, ali jbg :P) do 12 godina :-)

Btw, verovatno nekima nije jasno zasto uzimam danasnji dan + 1 i 12 godina unazad pa i dan unazad. Zato sto sam slucajno (sva sreca) video da u ovu pretragu nece biti ukljuceni datumi koji su zadati u uslovu BETWEEN. Tako da, da sam stavio tacno danasnji dan, i danasnji dan pre 12 godina, i da se potrefi da je neko rodjen na danasnji dan ili danasnji dan pre 12 godina, on ne bi ispunjavao zadati uslov :-)

P.S. Pokusavao sam da resim i preko timestamp-a, ali problem je sto ne mogu da nadjem Unix timestamp za 1920.-u godinu npr (znam da racuna sekunde u odnosu na 1970.-u godinu, ali sam mislio da ispod toga ide sa minusom) ....

P.P.S. Sve ove manipulacije (dan plus, dan minus, 10 godina unapred, 10 godina unazad, ....) mogu da se izvrse i direktno u MySQL Upitu (ako nekog zanima, evo kompletna lista funkcija za obradu vremena i datuma - http://dev.mysql.com/doc/refma...ions.html#function_date-format), ali ipak mi nekako lepse/lakse u PHP-u :-))

P.P.P.S. Nadam se da ce nekom ovaj post biti od pomoci :-)
 
Odgovor na temu

[es] :: PHP :: Potrebna ideja - Kako redjati rezultate iz baze po starosti ?

[ Pregleda: 1648 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.