Tak je chyba nekde u tebe ted jsem vlastnorucne zkousel ten dotaz a funguje ;)
Narval sem do databaze cca nahodna data (az na datumy ty sem si nadefinoval) takze sem tam mel vsechny dny roku 2005 - 2008 a kdyz sem spustil ten dotaz tak se skutecne vybraly jen dny ktery sou ode dneska vejs...
Kdybys chtel vyzkouset tak tabulka
CREATE TABLE IF NOT EXISTS `test`
(
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255) COLLATE utf8_czech_ci NOT NULL,
`date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci AUTO_INCREMENT=0 ;
PHP cast: (lze samozrejme udelat na stejnem principu v kteremkoliv jazyce ;)
/* jednoduchy cyklus ktery vlozi do db dny od roku 2005 do roku 2008
* Vklada vsechny mesice
* a dny v rozmezi 1 - 28 (kvuly kratkymu unoru, nechtelo se mi to upravovat ;) )
*/
for ($x = 2005; $x <= 2008; $x++)
for ($y = 1; $y <= 12; $y++)
for ($z = 1; $z <= 28; $z++)
{
// Pozadovany format: 2008-02-05 17:45:00 (pro date 'Y-n-j G:i:s' ) ;
$hodnota = $x."-".$y."-".$z." 17:45:00";
$dotaz = mysql_query("INSERT INTO test(`name`,`date`) VALUES ('".$x.$y.$z."', '".$hodnota."');");
if (!$dotaz)
{
echo "INSERT INTO test(`name`,`date`) VALUES ('".$x.$y.$z."', '".$hodnota."');";
}
}
Vystup:
$dotaz = mysql_query("SELECT * FROM test WHERE date >= TIMESTAMP(CURRENT_DATE()) ORDER BY id DESC");
echo 'ID Datum';
while ($data = mysql_fetch_assoc($dotaz))
{
echo $data['id'].' '.$data['date'].'';
}
Vysledny rozsah ID je od 1041 do 1344 v tom selectu.
Co se tyce datumu tak od ID: 1041 Datum: 2008-02-05 17:45:00 (proste od toho dne (vcetne) kdy to spustis ) vpodstate do posledniho zaznamu
(u me ID: 1344 Datum: 2008-12-28 17:45:00)
SNad to nak poberes :D