Autor Zpráva
Petris
Profil *
Ahoj, měl bych dotaz kolik podmínek mohu použít abych nezatěžoval příliš výkon a rychlost procházení scriptu.
Příklad. Mám url adresu například: http://localhost/naramky?f=razeni:2-material:51 ta se dynamicky mění v závislosti na použité filtraci a může být např: http://localhost/naramky?f=razeni:2-material:51|32|59 atd.

No a já pomocí podmínek porovnávám jaký materiál je ve filtru zvolen, případně jaká kombinace materiálu a na základě toho provádím další akci.

Problém je že když je třeba 7 materiálů tak je to více jak 57 kombinací a já pak dělám 57 podmínek a vyhodnocuji. Lze to takto dělat a nebo to lze i jinou cestou?
switch ($filtr) 
            {
                case "material:".$material_med_id:
                    $url = str_replace($_GET[f],"-".$filtr,$url);
                    break;
                case "material:".$material_stribro_id:
                    $url = str_replace($_GET[f],"-".$filtr,$url);
                    break;
                case "material:".$material_nerezocel_id:
                    $url = str_replace($_GET[f],"-".$filtr,$url);
                    break;    
                case "material:".$material_chirugocel_id:
                    $url = str_replace($_GET[f],"-".$filtr,$url);
                    break;    
                    
                    //atd atd
}

Děkuji
Tomášeek
Profil
Petris:
Proč si ta data nepředáváš nějak inteligentněji?

Krom toho, že ten switch nebude fungovat pro vícenásobný materiál (pokud ID stříbra je 32, pak řetězec material:32 v URL nefiguruje), je to takové nějaké hloupé. Budeš to muset zpracovat buď regulárem, nebo třemi explody, strposy&substry, kombinací všeho... Všechno bude zbytečně pomalé.

Kdybys měl URL ve tvaru ?razeni=2&material[]=51&material[]=32&material[]=59, měl bys hodnoty ke zpracování ve scriptu v mžiku. Typ řazení v $_GET['razeni'], materiály v $_GET['material']

Problém je že když je třeba 7 materiálů tak je to více jak 57 kombinací
Mělo by jich být přes sto, pokud není omezený počet (tzn. vybíráš od 1 do 7, tedy všech možných).

a já pak dělám 57 podmínek a vyhodnocuji
Hlavně s novým materiálem musíš přepsat i řídící script :-)
Petris
Profil *
I když si data předám jinak jak píšeš, tak je stejně pak musím ale nějak porovnávat a zjišťovat která kombinace materiálů je zatrhnuta. Nebo se pletu? Jde mi o to jak tedy nejefektivněji zjistím kombinaci materiálů a na základě toho provedu akci.
Tomášeek
Profil
Petris:
Nerozumím.

Jakou akci potřebuješ s vybranými materiály provést? Předpokládám vyfiltrovat produkty z databáze a ty pak zobrazit. Nebo něco jiného? Co? Nebo máš problém sestavit tu URL jako takovou?
Keeehi
Profil
Řekněme, že nejspíše jednotky tisíc podmínek nejspíš nepocítíš. A pokud bys je potřeboval napsat, tak děláš něco špatně. To jak to efektivně zapsat záleží na tom, k čemu to má sloužit a jaké jsou omezující podmínky. Možných variant zápisů je spousta a je potřeba zvolit správný, přesně podle tvé situace.
Petris
Profil *
Děkuji za podněty. No slouží to v podstatě k tomu, že bych rád měl pro každou stránku unikátní nadpis H1, titulek, desrciption, a text na stránce, který by právě odpovídal vždy zvolenému materiálu. Čili pro měď by byla stránka SEO zaměřena na měď, pro stříbro na stříbro, při kombinaci materiálu na oba atd.

Filtry z databáze a produkty odpovídající jim načtu v pořádku, url adresu taky, tu si pak exploduji a zjišťuji jaké materiály jsou zatrženy (vybrány) no a na základě toho jim chci přiřadit ty moje texty pro SEO.

Je to špatná myšlenka a nebo to jenom chybně realizuji? Pomocí jakých podmínek to tedy zapsat?
Kajman
Profil
Pokud máte výpis položek, co se liší jen filtrací či řazením, tak použijte cannonický link na hlavní výpis.

Title bych také řešil genericky
- řazení 2 přidá např. slovo "nejlevnější"
- naramky přidá slovo "náramky"
- filtr na materiál 51,32,59 (doporučuji mít definované pořadí čísel v url adrese) přidá slovo "z materiálu stříbro, zlato, platina", což nebudou podmínky pro všechny varianty, jen si převedete čísla na řetězce a poskládáte to.
Petris
Profil *
Jak ale udělám třeba popis materiálu měď v kombinaci se sklem. Napadá mě že u každého materiálu budu mít tento popis zadán v DB a při zaškrtnutí daného filtru budu zobrazovat a spojovat tyto popisky?
Kajman: To je asi to samé co píšete? A co myslíte definicí pořadí čísel v URL?


Kajman:
Canoický link používám. Když ale chci právě tyto stránky s filtrem materiál používat kvůli SEO bude je vyhledávač indexovat? A nebo bude brát akorát url adresu co je před ?

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: