Jump to content
php.lv forumi

datetime izvilkšana, sadalot pa mēnešiem


Mr.SergE

Recommended Posts

Sveiki!

 

Man te bišķiņ galva nestrādā, tāpēc lūdzu palīdzību.

 

Ir datubāze, kurā viens no laukiem ir datetime.

Ir php, kam jāizvada lauki no šīs datubāzes.

 

Tad nu tagad sākas interesantākais:

vajadzētu izvadīt visu ārā divos līmeņos, pieļaujot to, ka nav zināms, kurā datumā ir veikts pirmais un pēdējais ieraksts un ir zināms tas, ka veselu gadu var nebūt ieraksta vai kāda gada kādā mēnesī arī var nebūt ieraksta.

 

t.i., lai beigās sanāk, piemēram,

 

2003

Janvāris

Marts

Augusts

2005

Jūlijs

Augusts

 

utt.

 

Vai kāds varētu izskaidrot loģiku, kā veidot tāda veida izrakstu no datubāzes? Jau iepriekš pasakos!

Link to comment
Share on other sites

1)

SELECT YEAR(datetime_lauks) GROUP YEAR(datetime_lauks) ORDER BY YEAR(datetime_lauks)

2) Luupojam cauri un katram gadam

SELECT MONTH(datetime_lauks) WHERE YEAR(datetime_lauks) = $year GROUP BY  MONTH(datetime_lauks) ORDER BY MONTH(datetime_lauks)

 

Vai pareizi sarakstīju - īsti nezinu, pārbaudi pats :)

Link to comment
Share on other sites

Beigās gan uztaisīju biku savādāk, jo piedāvātais variants galīgi nestrādāja:

SELECT DISTINCT YEAR(datumslaiks) FROM tabula ORDER BY YEAR(datumslaiks) ASC

un

SELECT DISTINCT MONTH(datumslaiks) FROM tabula WHERE YEAR(datumslaiks) = '".$gads."' ORDER BY MONTH(datumslaiks) ASC

Link to comment
Share on other sites

nu pirmkārt kur tu rāvi mistiskos 1000 ierakstus, otrkārt ierakstus neattiecina uz DB... Treškārt, runa iet par tabulas izveidi ar 3 kolonnām, kas prakstiski neko "nesvers". Un beidzot, ir stulbi skaitīt katru reizi to pergu, kas nemaz tik viegla nav (nav viens SQL)...

 

Tā ir ne tikai selektu vienkāršošana, bet arī perfomance uzlabošana (netiek lieki noslogots serveris)

Link to comment
Share on other sites

×
×
  • Create New...