vyber clanku podle mesice

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
tomasnikl
Člen | 137
+
0
-

Ahoj,

narazil jsem u dibi na jeden problem. A to, ze nejsem schopen vybrat clanky z databaze podle roku a podle mesice. Konkretne kdyz pouziju toto:

//article_date je v databazi jako datetime
return dibi::fetchAll('
	SELECT
		*
	FROM
		[articles]
	WHERE MONTH(article_date) = 11
);

tak mi to vrati spravne data, ale kdzy pouyiju takovyto zapis:

$where = array(
	'MONTH(article_date)' => 11,
	'YEAR(article_date)' => 2011
);
return dibi::fetchAll('
	SELECT
		*
	FROM
		[articles]
	WHERE %and', $where
);

tak mi to vyhodi chybu:

Unknown column 'MONTH(article_date)' in 'where clause'

nevite jak tento zapis upravit tak, abych mohl pouzit ten „krasny zapis“ pomoci WHERE %and', $where?

Dekuji

hAssassin
Člen | 293
+
0
-

MONTH() a YEAR() jsou funkce SQLka, cili do dibi by se mel dat placeholder %sql, ale z hlavy presne nevim jak to zkombinovat s tim %and.

Milo
Nette Core | 1283
+
0
-

Existuje dibi fórum.

$conditions = array();
$conditions[] = array('MONTH(%n) = %i', 'article_date', 11);
$conditions[] = array('YEAR(%n) = %i', 'article_year', 2011);

return dibi::fetchAll('
        SELECT
                *
        FROM
                [articles]
        WHERE %and', $conditions
);

Editoval Milo (18. 10. 2011 14:04)

tomasnikl
Člen | 137
+
0
-

diky za nazory, vyzkousim az budu mit chvilku casu.

o dibi foru vim, ale kdyz jsem tam neco resil, tak se mi zdalo forum daleko mene navstevovane nez forum zde a diskuze se tam vetsinou protahovala na nekolik dni. Mozna se od te doby uz ale dost veci zmenilo :o) priste tedy zkusim resit problemy tam.