Jump to content
php.lv forumi

Recommended Posts

Posted

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!

Posted

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 :)

Posted

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

Posted

vai gadījumā, ja datubāzē nav vairāk par 1000 ierakstiem, ir kāds loģisks pamatojums, kapēc taisīt vēl vienu datubāzi tikai tāpēc, lai vienkāršotu ierakstu atlasīšanu?

Posted

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)

×
×
  • Create New...