

PHP objektování
Dobrý den,
začal jsem se učit objekty a zajímá mě téma "udržení vlastností během chodu stránky". Potřebuji po objektu, aby si stále pamatoval údaje z tabulky (abych to nemusel neustále zapisovat do databáze) i když se na něco klikne.
Konkrétně:
class vykreslit_hdd_tabulku{
public $HDD_pole = array(50);
... funkce...
Zde si tedy vytvořím pole, jež po prvním proběhnutí stránky bude mít na indexech aktuální status tlačítka... Např:
$HDD_pole[1] = "OK"
$HDD_pole[2] = "DM"
$HDD_pole[3] = "LS"
Logika je zhruba takováto:
první načtení stránky -> získání statusu z databáze, vykreslení tlačítek podle statusu, uložení aktuálního statusu do $HDD_pole.
kliknutí na změnu statusu -> změna statusu $HDD_pole[$ID] = aktualni_status -> vykreslení tlačítek podle statusu. Níže je právě ošetření změny statusu
for ($pomocna = 1; $pomocna<= $_SESSION["Count_rows"]; $pomocna++){
if ($_POST["Damaged"] == $pomocna . "_DM"){ $hdd_table->HDD_pole[$pomocna] = "DM"; }
}
Stránka se načte, tlačítko na které kliknu opravdu změní status tak, jak potřebuji, ale jakmile kliknu kamkoli jinam tak už jsou všechny hodnoty $HDD_pole zapomenuty. Což dává smysl, nicméně bych potřeboval, aby se mi v $HDD_pole udržel status tak, jako je to třeba u $_SESSION. A trochu jsem doufal, že od toho objekty jsou. Tak kdybyste mi někdo mohl vysvětlit kde jsem se spletl tak budu moc vděčný - neznám moc konvence, většinou jsem v PHP potřeboval jenom drobnosti...
Ak si chceš uchovať nejaké informácie behom chodu stránok (t.j. v rámci session), tak si ich ulož do $_SESSION. Pokiaľ si chceš ukladať do $_SESSION celé objekty, tak ich musíš pri zápise serializovať (serialize) a pri čítaní deserializovať (unserialize).
Z toho popisu, ktorý si sem dal, mi ale vychádza, že najlepšie by bolo to zapisovať priamo do databázy. Nerozumiem, prečo sa tomu snažíš vyhnúť.
Edit: Pole, ktoré si chceš pamätať v session, nie je ani objekt, takže tam nepotrebuješ robiť nič špeciálne.
Zdravím,
jestli se to nedá udělat tak, že objekt drží hodnotu nějak jednoduše, tak určitě zápis do databáze je jasná volba. Hlavně mi šlo o to, aby nebyla příliš vysoká zátěž na server... a taky aby to nebyla úplná prasárna.
Každopádně díky za tip :) mějte se tu pěkně...
Myslím, že v tomto případě je lepší ukládat stav do $_SESSION.
Protože v té databázi by stejně musel být nějaký klíč, jímž se rozpozná, ke které návštěvě se uložený stav vztahuje (např. session id). Nic nemožného, ale databáze by se musela později promazávat, aby v ní nestrašily staré zbytečné záznamy.
Z popisu mi skôr vychádza to, že len mení stav položiek, ktoré už má uložené v databáze.
Aha, v tom případě by to byla databáze jednoznačně.
Pokud by šlo o nějakou barvu knoflíku, která se mění na kliknutí, pak jednoznačně $_SESSION.
Moc díky, tady se ukazuje, jak když je člověk nezkušený, tak neví, co je úzus pro takovouto práci... Nevím proč jsem si myslel, že by to mělo jít jednodušeji přes objekty...