ziedinjsh Posted August 19, 2016 Author Report Posted August 19, 2016 Nu slikti, ko lai saka. Vai tu pats esi mēģinājis domāt / rakstīt kādu kodu, lai iznestu to pieprasījumu ārpus cikla? Jā, augstāk ar inner join, bet tā arī nesapratu kā izvadīt informāciju Quote
ziedinjsh Posted August 19, 2016 Author Report Posted August 19, 2016 Kā lai tagad izvada zem katras pamatkategorijas subkategorijas? $results = ORM::for_table('k1')->select('k1.id')->select('k1.cat_name_lv')->group_by('cat_name_lv') ->select('k1_to_k2.k1_id')->select('k1_to_k2.k2_id') ->join('k1_to_k2', array('k1.id', '=', 'k1_to_k2.k1_id')) ->select('k2.id')->select('k2.sub_name_lv') ->join('k2', array('k1_to_k2.k2_id', '=', 'k2.id'))->find_many(); foreach($results as $result){ } Quote
waplet Posted August 19, 2016 Report Posted August 19, 2016 (edited) 1. Ordero pēc Kategorijas 2. ciklā, kamer "Tekošā kategorija" == "Iepriekšējā kategorija"; do nothing 2.1 citādāk "echo Jaunā kategorija" 3. "echo Subkategorija" Edited August 19, 2016 by waplet Quote
jurchiks Posted August 19, 2016 Report Posted August 19, 2016 Tā pag, vai tu tur centies kverijot main kategorijas un subkategorijas vienā kverijā, un ceri tās vienkārši izvadīt nested tree formātā? Quote
ziedinjsh Posted August 19, 2016 Author Report Posted August 19, 2016 Laikam, kā tad ir jadara? Varbūt kkur kāds piemērs? Quote
daGrevis Posted August 19, 2016 Report Posted August 19, 2016 > Varbūt kkur kāds piemērs? Googlē noteikti būs piemēri par rekursiju. Vai arī tu nokļuvi ciklā, kad meklēji pēc "recursion"? Quote
Mr.Key Posted August 19, 2016 Report Posted August 19, 2016 (edited) CREATE TABLE product_categories id, name, etc. CREATE TABLE product_category_links category_id, parent_id, <-- NULL pirmā līmeņa kategorijai, product_categories.id 2. un zemāka līmeņa kategorijām. position etc <-- kārtošanai Pirmā līmeņa kategoriju atlase: SELECT pc.* FROM product_categories pc JOIN product_category_links pcl ON pc.id = pcl.category_id WHERE pcl.parent_id IS NULL; Otrā līmeņa kategorijas: SELECT pc.* FROM product_categories pc JOIN product_category_links pcl ON pc.id = pcl.category_id WHERE pcl.parent_id = $this->id ORDER BY pcl.position; ORM gadījumā - jāpēta FW dokumentācija, bet idejiski: class Categories. ... { // relations public function getParents() { return $this->hasMany(Categories::className(), 'id' => 'parent_id')->via( ... kur norāda, ka 'category_id' = this.id) } public function getSubcategories() { return $this->hasMany(Categories::className(), 'id' => 'category_id')->via( ... kur norāda, ka 'parent_id' = this.id) } // utt. } Tad attiecīgi: $category = new Category(); $category->parents .... $category->subcategories + statiska metode top level kategoriju atlasei, atkarībā no ORM. Tas pats many()->via(), kur parent_id IS NULL. Glabāt atsevšķā tabulā 1. līmeņa un 2. līmeņa kategorijas nevajag. Kādā brīdī gribēsies 2. līmeņa kategoriju izcelt pirmajā līmenī. Ar šo variantu tas iespējams tā, ka viena kategorija var būt gan 1., gan 2. līmeņa kategorija: Augļi Akcija! Āboli Banāni Etc. Konfektes Akcija! Akcija! Edited August 19, 2016 by Mr.Key Quote
goma smile Posted September 12, 2016 Report Posted September 12, 2016 Ko sakat par šādu uzglabāšanas metodi ? http://www.sideralis.org/baobab/ Quote
waplet Posted September 14, 2016 Report Posted September 14, 2016 Tādā gadījumā ņem šo - http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/ Esmu pats implementējis vienu no šiem kokiem, nekas pārāk sarežģīts nebija. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.