Matoo125 / Vegapo

0 stars 2 forks source link

Filtrovanie produktov na zaklade viacerych tagov. #4

Closed mrkovec closed 7 years ago

mrkovec commented 7 years ago

Pridanie moznosti filtrovat produkty na zaklade viacerych roznych tagov - pridavanie a odoberanie tagov z filtra.

Matoo125 commented 7 years ago

Ahoj, v prvom rade by som chcel pochváliť super spracovanie! 👍

Mám iba dve otázky k tomu SQL

Nepochopil som úplne tej poznámke

nechcel som zasiahnut do hodnot vracanych funkciou getProducts

Ako sa nedá zasahovať do hodnôť keď píšeš WHERE slučku?

A ešte by ma zaujímalo, či ten tvoj sql má nejakú výhodu nad

$tag_slugs = "'" . implode("', '", $tag_slugs)  . "'";
$where[]  ="t.slug IN(:tag_slugs)";
$array['tags'] = $tag_slugs;

Možno sa odpoveď na moju druhú otázku nachádza v prvej ... v každom prípade ďakujem za spoluprácu a toto už je iba taký estetický dodatok. :) 💯

mrkovec commented 7 years ago

Slo mi o to, ze v query (vo fnc getProducts) sa selectuju concatnute mena tagov pre konkretny produkt - GROUP_CONCAT(DISTINCT t.name) AS tags na https://github.com/Matoo125/Vegapo/blob/4fea2009d9f460173d7f79692eaee9a068bb9fbc/app/model/Product.php#L154 a ked som where podmienku skusal spravit podobne ako pises, tak ten zoznam tagov obsahoval len tie, ktore boli v podmienke. Neviem, ci sa vyjadrujem jasne - chcel som dosiahnut aby produkt mal uvedene vsetky tagy, ktore su k nemu pridelene, nie len tie za zaklade ktorych je selectovany. Mozno je to bezpredmetne a tags stlpec nemusi obsahovat vsetky produktove tagy - v tom pripade je tvoje riesenie idealne.

Matoo125 commented 7 years ago

Aha už som pochopil.

Ja som zabudol, že sa tam selektuje aj zoznam tagov, pretože najprv som spravil query a potom som to nikde nezobrazil, takže je to momentálne nevyužité.

EDIT: v administrácií sa zobrazuje zoznam tagov pri produkte, takže je to trochu využité. Aj ked neviem či potrebné.

Zajtra spravím merge a rovno to aj zverejním.

EDIT: možno kôli rýchlosti by sme mohli použiť zatiaľ mnou navrhnutý spôsob. Teraz som to skúšal a je tam rozdiel 19 ms vs 190 ms. To je celkom výrazné.

mrkovec commented 7 years ago

Super, som rad ze to slo tak hladko. Mas to dobre navrhnute, diki za spolupracu a mam pripravenych par dalsich hotovych veci.