Autor Zpráva
Duchaplny
Profil
Zdravím,

mám tu jednu dilemu, ktorú potrebujem vyriešiť. Vytiahnem údaje z DB, scriptom ich porovnám a spracujem, a na stránke sa mi vypíšu výsledky.. teraz potrebujem, aby sa výsledná stránka (veľkosť cca 50 riadkov) natrvalo uložila na unikátny link, a mohol by som tak spätne pozrieť výsledky, príp. ten link odoslať niekomu, aby sa na to pozrel.. tu nastáva dilema, ako to urobiť.

Nejaké návrhy ?
Str4wberry
Profil
Pokud jsou ty výsledky, které se vypisují, v tabulce v databási, tak si stačí přidat nějaký sloupec ID. A podle toho je zpětně hledat při zadání URL.
Duchaplny
Profil
práve, že nie sú.. z DB ťahám len údaje a všetko zabezpečuje script, a dilemu mi robí ten spôsob akým tie výsledky uchovať.. napadá ma len ukladať ich do DB, čo sa mi veľmi nepáči, bo je to veľmi veľa riadkov a časom by to mohlo mať dopad na rýchlosť alebo ukladať to "hrubo" do textového dokumentu, ktorý sa uloží na servery, čo mi je trochu sympatickejšie, ale nepoznám negatívnu stránku tejto metódy, tak sa do toho nechcem púšťať bez premyslenia.. iné metódy ma nenapadli, ale uvítal by som každý nápad..
Str4wberry
Profil
A podle čeho se z DB tahají ty údaje? Zkuste popsat, co přesně vůbec děláte.

Jinak teď jsem zkusil vybrat jeden příspěvek ze zdejší tabulky příspěvků, kde jich je cca milion a netrvalo to ani jednu milisekundu. Takže nevím, jestli jsou obavy z rychlosti opodstatněné.
Duchaplny
Profil
Takže nevím, jestli jsou obavy z rychlosti opodstatněné.
možno, že nie sú.. ja len logicky k tomu pristupujem, ku príkladu: keď tisíc krát uložím 50 riadkov, a potom si chcem z histórii pozrieť, konkrétnych 50 riadkov, tak sa musí prejsť cez 50000 záznamov v DB, príde mi to veľa, aj keď viem, že DB sú na toto stavané..

A podle čeho se z DB tahají ty údaje? Zkuste popsat, co přesně vůbec děláte.
Jedná sa o porovnávanie produktov. Vybere sa niekoľko produktov, a porovnajú sa parametre, výsledky sa vypíšu na stránke, napr.:
Model A je starší o 3 roky od modelu B.
Model B má o 15kW menšiu spotrebu ako model C.

a takto to obsahuje zhruba 50 riadkov, ktoré sa vypíšu na stránke, a práve tieto výsledky rovno aj s tým textom, resp. celé ako to vyjde zo scriptu, a je prezentované na stránke to potrebujem uložiť na link, ktorý bude slúžiť ako história..
Str4wberry
Profil
Aha.

Tak budete mít adresu example.com/?produkt1=fytopuf&produkt2=kobercovka&produkt3=strouhanka a na té se udělá stejné porovnávání, jako ho máte teď. Pokud to srovnávání trvá dlouho (to už můžete zjistit teď), tak se výsledek bude kešovat. A opakované srovnávání stejných produktů se příště načte z keše.

Jestli keš bude výsledné HTML nebo serialisovaný objekt a uložená bude v DB nebo jako soubor, už je celkem jedno.
Duchaplny
Profil
Problém je v tom, že to porovnanie môže byť "rovnaké", v tom zmysle, že sa zvolia rovnaké produkty niekoľko krát, s tým, že sa niektoré parametre zmenia napr. gramáž abo niečo pod., a výsledok by tam mohol byť celkom iný, ale je nutné mať v histórii všetky výsledky, aj keby ich malo byť 100 rovnakých.

Výsledok by mal byť v HTML, príp. by to mohol byť aj obrázok, podstatné je, aby boli vidieť všetky riadky presne tak, ako ich script spracoval a aj s textami, ktoré tam script vypíše cez echo()/print().

Ide o to, že riadkov môže byť 50 ale aj menej či viac, záleží koľko vecí daný produkt má, a aj ich poradie sa môže tým pádom meniť, bo sa niektoré riadky vynechajú/pridajú.. už sa trochu točím v kruhu, ale podstata je, aby ten výsledok bol nalinkovaný a dalo sa ho kedykoľvek pozrieť z ktoréhokoľvek PC zadaním URL adresy.

Keďže nepadli iné možnosti, tak vyvstáva otázka, čo ukladať do DB/súboru ?

BTW: keš je pravdepodobne cache, ale netuším ako to funguje, je to automaticky alebo to treba nejak nastavovať, či niečo iné s tým robiť ?
Str4wberry
Profil
Pokud nebudou seznamy „živé“, je potřeba si ještě zodpovědět poslední otázku. Bude potřeba s daty z historie něco dělat, něco z nich vyhodnocovat? Pokud ne, tak v zásadě bude stačit uložení HTML kódu (nebo serialisovaného pole v případě, že je žádoucí, aby šlo pohodlně měnit výsledný HTML kód).

Ukládání stránky do souboru je v PHP možné realisovat přes file_put_contents. Obsah k uložení se může buď přidávat do proměnné, nebo zachytávat přes ob_start a ob_get_contents.

Identifikátor pro takovýto výsledek (URL vedoucí na výsledek srovnávání) se dá vytvořit třeba jako hash celého obsahu. Nebo využít automatické inkrementace ID v případě ukládání do DB.
Duchaplny
Profil
Bude potřeba s daty z historie něco dělat
Určite nie, budú slúžiť len ako história..

file_put_contents
Pozeral som si túto funkciu, zapisuje/prepisuje/pripisuje do súboru zvolený obsah. Zrejme by som musel dať vždy iný názov súboru, povedzme formou $_GET ?! inak by to asi tie data vypisovalo do jedného súboru pod seba, a v takom prípade by to asi nebolo prehľadné alebo sa dá vyhľadávať podľa nejakého kľúča v textovom dokumente ?

Potom by som vlastne ukladal jednotlivé textové súbory do zložky, a do DB vypisoval ich cestu ? alebo ukladal celý súbor ako BLOB ?! a rovno ho načítal z DB ?

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: