Hmmm mas pravdu problem je v LIMIT 30,100 u DELETE totiz muze byt LIMIT pouzit pouze s jednim cislem a to oznacuje kolik zaznamu se ma smazat.
Ja na svim chatu to mam udelany tak za mazu vsechny zpravy starsi jak 10 minut.
$time = Time() + 600;
mysql_query("DELETE FROM chat WHERE Time<$time");
To je asi nejjednodussi reseni.
a co to udelat ne jen pomoci selectu, ale trosku do toho zaplyst php, zas tolik to nicemu neuskodi, hlavne ze to funguje ;-) .. $time = ..... select `time` ... limit 30,1; (to by mel byt 30.radek, jestli ne oprav si to) .. a dal presne tak jak to ma bohdan, akorat uplne jinak ;-) delete ... where `time` < '$time'
2lynx: Tak uplne sem nepochopil proc do toho michat SELECT
2Bery: Prez noc me napadlo jak by se to dalo udelat tim zpusobem jak to chces.
$result = mysql_query("SELECT * FROM zpravy");
$pocet = mysql_num_rows($result);
if($pocet > 30)
{
$smazat = $pocet - 30;
mysql_query("DELETE FROM vzkazy ORDER BY id LIMIT $smazat");
}
Netestoval sem to, ale snad to bude chodit.
Pro Bohyna:
Sice Ti děkuju za snahu, ale stejně mi to nic nemaže :(. A zas to žádnou chybu ani nehlásí. Čim to?
/* SMAZÁNÍ VZKAZŮ */
$result = MySQL_Query("SELECT * FROM vzkazy");
$pocet = MySQL_Num_Rows($result);
if($pocet > 30)
{
$smazat = $pocet - 30;
MySQL_Query("DELETE FROM vzkazy ORDER BY datum LIMIT $smazat");
}
/* VYPSÁNÍ VZKAZŮ */
$query = MySQL_Query("SELECT * FROM vzkazy ORDER BY datum DESC");
.
.
.
Mysql chyby hlasi pomoci fce mysql_error. Ta vrati chybu (pokud nastala) z posledni mysql fce.