Autor Zpráva
Sirius
Profil
Zdravím,

mám web na způsob eshopu a potřeboval bych při přidávání položky do košíku, ověřit, jestli tam už náhodou není, když je, tak přičíst počet vložených výrobků toho typu k těm již uloženým, když není, tak vytvořit nový řádek.

Mám tušení jak to provést, přes dotaz na DB, a pak if a else, ale zdá se mi, že celý web je čím dál tím pomalejší a pomalejší (až příliš na velikost kódu / db a že beží na localhostu).

Prakticky vše je postaveno na tahání dat z DB, ověření výsledku a následným zpracováním podle výsledku. Při zpracování některých stránek jde okolo 8 dotazů na DB a následují dlouhé bloky if-else. Asi to nebude zrovna nejštastňější řešení (ale funguje :) .) Nemám prakticky žádné zkušenosti s PHP ani DB. Pročítal jsem některá témata tady a zjistil jsem, že existuje dost vychytávek o kterých jsem neměl ani tušení.

Jak by tak měl být dlouhý kód, nebo kolik dotazů na DB je optimálních, aby web nebyl příliš pomalý? Nemáte nějakou obecnou radu, jak to celé zkutit nějakým lepším způsobem?

Díky
ninja
Profil
Většinou platí pravidlo čím méně dotazů, tím lépe. Ale neplatí to vždy. 8 dotazů na jednu stránku je ještě únosné. Opravdu vás brzdí tyto dotazy?

Pokud jde o první část, nestačilo by aktuální stav košíku ukládat do session (a tedy defaultně do souboru)? Neříkám že to bude určitě rychlejší, ale je možné že to brzdí tabulka s aktuálním počtem zboží v košíku, která je asi velmi často upravována.

Tak jako tak vám nezbývá nic jiného než do kódu vložit nějaký nástroj pro počítání času a zjistit, co skutečně nejvíce stránky brzdí a následně analyzovat proč.
tiso
Profil
Pár (slovom tri) všeobecných rád: MVC, cache, ukladanie údajov do SESSION.
Sirius
Profil
Ukládání obsahu do session asi nebude možné, potřebuju je ukládat dlouhodobě. Po poradě s pár lidma zvítězila databáze.

Google mi pomohl zjistit, co je to MVC, ale jeho využití asi nejsem schopen.

Díky za všechny rady, podívám se na to.

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:

0