Autor | Zpráva | ||
---|---|---|---|
Levelson Profil * |
#1 · Zasláno: 7. 7. 2009, 10:27:11
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 id, username, ip_user, text, datum id je auto_increment, datum je auto-timestamp, ostatní je varchar) |
||
Alphard Profil |
#2 · Zasláno: 7. 7. 2009, 10:42:56
Podle id i data lze snadno řadit, výpis omezíte limitem 15 a jednou za čas smažete ty starší.
|
||
Levelson Profil * |
#3 · Zasláno: 7. 7. 2009, 11:11:21
asi by to šlo, ale jak zautomatiozovat ten výmaz, nerad bych aby tabulka přerůstala, bude tam dost uživatelů....
|
||
Alphard Profil |
#4 · Zasláno: 7. 7. 2009, 11:25:52 · Upravil/a: Alphard
Levelson:
Ideálně cron, jestli není, přihoďte to do nějaké vhodně navštěvované stránky. |
||
Levelson Profil * |
#5 · Zasláno: 7. 7. 2009, 11:29:41
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 |
#6 · Zasláno: 7. 7. 2009, 11:32:15
„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 * |
#7 · Zasláno: 7. 7. 2009, 11:51:54
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 |
#8 · Zasláno: 7. 7. 2009, 13:12:33
$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 |
||
Časová prodleva: 15 let
|
0