Autor Zpráva
Mikolášek
Profil *
Nějak nemůžu z logiky přijít na to, jak udělat funkci IF. V mySQL mám uložené data od nějakého data až po součastnost, kdy přes script zjistím o jaké minimální (počáteční) datum se jedná. Potřeboval bych, když už budu v toce 2012, aby se mě vypsali jen ty měsíce, které v mySQL jsou. Naopak pro tento rok je to max řekněme do dnešního dne 14.2., tak že výpis musí být jen do tohoto února.

$rok = "2012"; // meni se dle SEO tj. /2012/, /2013/ apod. z $rok = $_GET["rok"];
$omezeni_roku = Date("Y", $prvni_den_archivu[0]); // pocatecni (minimalni) datum
$aktualni_rok = Date("Y"); // aktualni rok

// tento pouziti IF funguje .. zobrazi jen mesice ve kterych mam data, ale nevim jak tam pridat aktualni rok, aby to byl pak jen leden, unor ... dal ne.
 if ($m >= $omezeni_mesice AND $omezeni_roku == $rok)
 {
 // zde se vypisi mesice pro ktere jsou data v mySQL
 }
juriad
Profil
A proč se nezeptáš rovnou databáze?
SELECT DISTINCT YEAR(datum), MONTH(datum) FROM tabulka ORDER BY 1, 2
Mikolášek
Profil *
Dělám si výpis měsíců a dělám z toho menu. Proto.
$nazev_mesice = array(1 => 'leden', 'únor', 'březen', 'duben', 'květen', 'červen', 'červenec', 'srpen', 'září', 'říjen', 'listopad', 'prosinec');
juriad
Profil
Ten můj dotaz ti vrátí všechny roky a měsíce, které v databázi existují. Pokud chceš měsíce jen pro konkrétní rok, přidej si podmínku WHERE YEAR(datum) = 20XY
Pro každý rok vypíšeš všechny měsíce z toho roku. (Přidal jsem ORDER BY, takže výpis lze provést jediným průchodem výsledku dotazu)

Nebo dovnitř svého ifu přidej:
if($rok == $aktualni_rok && $m <= Date("n")) {
  // výpis měsíce
}
Mikolášek
Profil *
Moc děkuji za logickou podporu. Tvůj přidaný IF zabral a už to funguje jak má.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: