Adott MySQL adatbázisból mező törlése egy megadott idő után? (script-es megoldás)
Üdv,
Tehát pontosabban adott egy x adatbázis, amelyhez php-ben megírtam az adatbázishoz való csatlakozást, létre is jön ill. egy másik fájlban, html alatt input-al bekérek y adatot és INSTERT INTO x (mezők) VALUES (értékek) szóval mindegy megy, viszont én mindezt úgy akarom, hogy egy adott idő után az adat automata törlődjön, a helyet (nem mintha nagy lenne) felszabadítva és egyéb okok miatt.
Egy weboldalon láttam ilyen megoldást egyébként, ők pl. úgy használják, hogy ha az ember 60 napig (2 hónap pontosan) nem lép be, akkor automatikusan törlik a profilját.
De én elsősorban időalapú scriptes megoldást akarok csinálni, valahogy úgy képzeltem el , hogy mikor a feldolgozó php berakja az adatokat az adatbázisba elindít egy számlálót (hát igen nyílván hasonló megoldást írtatok volna ti is .. ) viszont nem tudom ezt a php fájlba rakjam vagy vegyek fel egy adat bekérése estén 3 mezőt az adatbázisba?
Tehát nekem csak egy név (username) kell, ezt bekérem és a táblában 3 mező lenne, ugye a névnek, username alatt ill. 2, egy DATE és egy pl. timer néven?
Segítségetek köszönöm!
google: időzített php script cron
milyen webszervered van?
Van szebb a timeres megoldasnal.
A feladatot ket reszre fel lehet bontani:
-Toroljuk a 60 napnal oregebb sorokat: tarolod a beteves idopontjat, ha tavolabb van a mai naptol mint 60, torles.
-Inditsuk az elozo scriptet naponta: cron, ahogy az elozo valaszolo irta.
A mai világban nem érdemes helytakarékosságból ilyet tenni, hacsak nem óriási mennyiségeket kell rendszeresen törölni.
Ilyesmihez már nem elég az alapszintű tudás, kicsit mélyebben bele kell ásnod magad a számítógépek és a MySQL működésébe, hogy megértsed, hogy ezen a módon nem is lehet helyet spórolni, mert ha törölsz egy rekordot, egyáltalán nem ígéri meg neked senki, hogy annak a helye rögtön felszabadul a lemezen. Sőt, az is leehet, hogy fizikailag sem tud, ha csak kevés adatról van szó.
Erre akkor érdemes energiát áldozni, ha rá akarod kényszeríteni az embereket, hogy minden 60 napban lépjenek be, és büntetni, aki mégsem teszi (ehhez nem kell törölni, elég egy bitet bebillenteni); viszont így előbb-utóbb tényleg majdnem annyi helyet fogsz megspórolni, mint ha el sem kezdted volna az egészet, mert a felhasználók ott fognak hagyni, és keresnek más oldalakat.
A fent leírt csak példa, konkrétan egy olyat akarok megvalósítani, hogy adott egy alap form ami bekér x adatot (regisztrációs űrlap, bárminemű és fajtájú űrlapról is legyen szó) és y idő után törli azt. Azért szeretném mert a formba feltölthető lenne kép vagy videó is. Így már ugye jó ha hely szabadul fel mert ha x felhasználó fel/kitölt y egy és ugyanaz űrlapot z adattal az sok lehet, pl. max 2 mb-s képek és max 50mb-s videófájloknál.
Olyan megoldás lehetséges egyébként, hogy adott egy sql adatbázis, amelyen belül pl. Megoszott Videók táblavéven van 100 mező. Ide tehát 100 videót max 50mb/videó fájlméretben feltöltenek és mikor megtelt a 100 mező ne kelljen errort kapni hanem a 101-iket automatikusan az első helyére rakja be/cseréli le?
Kérdés, hogy milyen hozzáférésed van, a legegyszerűbb időzítve elindítani egy PHP scriptet, ami a megfelelő rekordok törlését elvégzi. Ehhez a cron és a crontab működését kell kicsit megérteni, illetve megtudni, van-e ilyen hozzáférésed. Fizetős tárhelyszolgáltatásoknál ez már viszonylag alap.
Minden adatnak az adatbázisban illik lennie, ami a feldolgozáshoz kell.
Hostgator-on néztem, ott még külön van support tésze, hogy hogyan kell a cron jobs-ot beállítani. A felülete nem valami bonyolult kérdés hogy most ahoz kell nekem linux is vagy csak az adminpanelbe választok pár automatikusan indítandó scriptet és azt bemásolom az én php fájlaimba ami ugye a tárhelyen van?
Kissé bonyolultnak tűnik. :/
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!