Autor Zpráva
Anonymní
Profil *
Mam tabulku ....


---------------------------------------------
id I nazev I text I datum
---------------------------------------------


Datum je policko typu date.

No a dejme tomu že bych chtěl vypsat všechny články za existenci roztříděné
do měsíců a roků :


2005:
leden:
bla
bla
bla
únor:
bla
bla
bla
březen:
není nic....
2004:
leden:
bla
bla
bla
.........................................a tak dále ..............


No a jak mám formulovat cyklus a změny dotazu sql ?

23k: mi poradil :



select * from table where clanky between ('01-03-2005') AND  ('31-03-2005')



ale to bych musel ke kazdemu mesici davat pocet dni atd ....
Jde to nějak automaticky ?
Tomik
Profil
Zkus

select * from table where datum like '__-03-2005'


znak _ nahrazuje jeden znak
llook
Profil
Já bych to viděl asi takhle:

<pre><?php
pripojeni_a_vyber_databaze();

$rs = mysql_query('SELECT *, YEAR(`datum`) AS `y`, MONTH(`datum`) AS `m`
FROM `table` ORDER BY `datum` DESC;');

$prev_year = -1;
$prev_month = -1;
while ($row = mysql_fetch_assoc($rs) !== false) {
if ($row['y'] != $prev_year) {
echo($row['y'].":\n");
$prev_year = $row['y'];
}
if ($row['m'] != $prev_month) {
echo("\t".$row['m'].":\n");
$prev_month = $row['m'];
}
echo("\t\t".$row['nazev']."\n");
}
?></pre>
23k
Profil
Hmmm a neslo by pres SELECT zjistit treba pres GROUP BY mesice ktere se tam vyskytuji + zobrazit navic aktualni mesic ?
S tim ze pokud aktualni mesic v DB je tak ho nezobrazovat 2x.

A ty mesice se vyberou pres to co psal ILOOK ... moth(date) ....

Takovyto zapis bych nenapsal, ale nejakym zpusobem bych se k tomu dokopal.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0