Autor Zpráva
Levelson
Profil *
Chtěl bych pro registrované zprovoznit malé návštěvní knihy (vzkazníky), tak aby se mohlo maximálně uložit 15 příspěvků a poté další nový by odmazal ten nejstarší, jak by se to co nejjednodušeji dalo realizovat na urovni msql?

....to musím před každým zápisem vytahovat z databáze kolik má daný uživatel už vzkazů a podle toho upravit následují kroky kódu ? ...nejde to nějak elegantněji? třaba za využití jedinečných klíčů...

(moje tabulka
navstevni_kniha
obsahuje zatím sloupce:

id, username, ip_user, text, datum

id je auto_increment, datum je auto-timestamp, ostatní je varchar)
Alphard
Profil
Podle id i data lze snadno řadit, výpis omezíte limitem 15 a jednou za čas smažete ty starší.
Levelson
Profil *
asi by to šlo, ale jak zautomatiozovat ten výmaz, nerad bych aby tabulka přerůstala, bude tam dost uživatelů....
Alphard
Profil
Levelson:
Ideálně cron, jestli není, přihoďte to do nějaké vhodně navštěvované stránky.
Levelson
Profil *
CRON nevím jestli můj hosting nabízí - zjistím, doposud jsem to neznal... díky ALPHARD
a jinak s tím přihozením na vhodně navštěvovanou stránku to není špatnej nápad ;-)
petr 6
Profil
s tím přihozením na vhodně navštěvovanou stránku to není špatnej nápad
Lepsi je prihodit to na stranku, kde vkladas prispevky: Po vlozeni prispevku se podivas, jestli jich je vic jak 15, a pokud ano, tak ty prebytecne smazes.
Levelson
Profil *
TO Petr: já právě chtěl ulechčit DB, aby se při každém zápisu nemusel zjišťovat stav té tabulky, před každým zápisem...
peta
Profil
$res = ... SELECT COUNT(`id`) WHERE `majitel`='Fero'
mysql_result($res,0) // tusim, vytahuje jednu hodnotu a nebo to udelej pres fetch a pak $vysl[0]
nebo tam dej
SELECT COUNT(`id`) AS `pocet`
mysql_result($res,'pocet')
mysql_fetch + $vysl['pocet']
id pocet>15 DELETE... nebo UPDATE prvni podle data

nebo ulozit proste 15 prispevku pri zalozeni, cistych a pak je prepisovat podle data, cili UPDATE prvni podle data

UPDATE ... WHERE `id IN (SELECT FROM ... ORDER BY 'datum' LIMIT 1) dvojity dotaz

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: