smazat data z databáze v určitý datum

Potřebuju pomoct,
vymejšlím na stránky jednoduchý weblog, díky kterému se dají zapisovat plánované akce. Dále při zobrazování to chci vymyslet, aby to zkontrolovalo datum akce a současné datum, a pokud bude akce starší, aby ji to nezobrazovalo a rovnou ji to smazalo z databáze. V tabulce mám tři sloupky:

CREATE TABLE planovane (
datum int NOT NULL PRIMARY KEY,
nazev varchar(60) NOT NULL,
popis text NOT NULL,)


Ten soubor, kterej má zobrazovat, mi ale nefunguje. Hází mi to chybu:

Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in c:\apache\htdocs\a\zobrazit.php on line 6


Vypadá takto:


<?
mysql_Connect("localhost");
$zaznam = mysql("akce", "SELECT * FROM planovane ORDER BY datum");
while ($zaznam = MySQL_Fetch_Array($result)):
if($zaznam["datum"] < Time()): // datum akce je mensi nez aktualni
mysql("akce", "DELETE FROM planovane where datum=$zaznam["datum"]");
else:
$result = mysql("akce", "SELECT * FROM planovane ORDER BY popis");
while ($result = MySQL_Fetch_Array($result)):
echo $result["popis"];
endwhile;
endif;
endwhile;
?>


Nevíte, jak lépe ten soubor napsat? Nebylo by třeba lepší těm akcím dát ID, které by se samo generovalo a díky němu by se pak jednodušeji akce z databáze mazali?
Prosím poraďte.....
1) nepoužívej datum jako primární klíč, nemusí být vždy unikátní (2 akce v 1 den)
2) na řádku 6 máš jednoduchou syntaktickou chybu - uvozovky vnořené do druhých uvozovek (konkrétně místo $zaznam["datum"] dej $zaznam['datum'])
3) netuším, co znamená ten první parametr nesmyslné funkce mysql

Zkus to třeba takto :

CREATE TABLE planovane (
id int(11) NOT NULL auto_increment,
datum int(11) NOT NULL default '0',
nazev varchar(60) NOT NULL default '',
popis text NOT NULL,
PRIMARY KEY (id)
)

/* datum ukladej jako unixovy cas - fce Time() - pocet sekund od 1.1.1970 (?) */

<?
$spojeni = @MySQL_Connect($db_server, $db_user, $db_password) or Die("Nepodařilo se připojit k databázi!");
$db = @MySQL_Select_DB($db_name, $spojeni) or Die("Nepodařilo se připojit k databázi!");

$sql = "DELETE FROM planovane WHERE datum < " . Time();
$query = MySQL_Query($sql);

$query = MySQL_Query("SELECT * FROM planovane ORDER BY datum");
while ($result = MySQL_Fetch_Array($query))
{
echo $result['datum'] . " | " . $result['nazev'] . " | " . $result['popis'] . "<BR>\n";
}

MySQL_Free_Result($query);
MySQL_Close($spojeni);
?>

Snad jsem tam neprehledl nejakou chybu a fungovat to bude :>)

A treba ti poradi nekdo jeste lepe ;-)
No, myslím, že ta odpověď byla vyčerpávající.
Chtěl jsem původně napsat pár připomínek, ale po přečtení jsem zjistil, že jsou zavádějící, tak se omezím jen na tuhle:

Místo php fce Time() můžeš použít přímo fci MySQL UNIX_TIMESTAMP() takže ten jeden řádek by pak byl:

$sql = "DELETE FROM planovane WHERE datum < UNIX_TIMESTAMP()";

PS: Tohle jsem napsal, abych mohl také něčím přispět a dělat chytrýho, když už to Pavel tak skvěle popsal ;-)
> UNIX_TIMESTAMP()

Taky jsem uvažoval, jestli mu to tam nedám, ale snazší je imho nejprve pochopit všechny funkce php...

A taky se mi zdá, že může nastat problém v různě natsveném času na webovém a databázovém serveru (i když by se to stávat nemělo).

Stejně je to taková prkotina :-)

p.s.: Určitě by to šlo napsat lépe, já to jen narychlo vysvětloval.
S rozdílným časem u servru na kterém běží PHP a MySQL jsem se setkal. Člověk prostě musí používat to, nebo ono raději neriskovat míchání php fcí s MySQL funkcema, neboť pak můžou vycházet zajímavé výsledky.

Jinak nevím, jak lépe to napsat. Určitě je to dobré a jen by se to dalo zestručnit na míru té oné konkrétní aplikaci.