Autor | Zpráva | ||
---|---|---|---|
Rada99 Profil * |
#1 · Zasláno: 16. 12. 2020, 21:27:37
Zdravím,
mohl by mi někdo poradit jakou cestou bych se měl vydat když potřebuji vyřešit tento úkol: kombinace 2 a více produktů s nejvyšší mírou společného výskytu v objednávkách vzorové data vypadají takto $orderProds = []; $orderProds[0] = [['id' => 1, 'name' => 'kompresor'], ['id' => 2, 'name' => 'hadice']]; $orderProds[1] = [['id' => 3, 'name' => 'spony'], ['id' => 2, 'name' => 'hadice']]; $orderProds[2] = [['id' => 4, 'name' => 'kameny'], ['id' => 5, 'name' => 'rostliny']]; $orderProds[3] = [['id' => 4, 'name' => 'kameny'], ['id' => 5, 'name' => 'rostliny'], ['id' => 1, 'name' => 'kompresor'], ['id' => 2, 'name' => 'hadice']]; $orderProds[4] = [['id' => 3, 'name' => 'spony'], ['id' => 4, 'name' => 'kameny'], ['id' => 5, 'name' => 'rostliny'], ['id' => 1, 'name' => 'kompresor'], ['id' => 2, 'name' => 'hadice']]; $orderProds[5] = [['id' => 1, 'name' => 'kompresor'], ['id' => 3, 'name' => 'spony']]; $orderProds[6] = [['id' => 2, 'name' => 'hadice'], ['id' => 3, 'name' => 'spony']]; $orderProds[7] = [['id' => 2, 'name' => 'hadice']]; $orderProds[8] = [['id' => 1, 'name' => 'kompresor']]; $orderProds[9] = [ ['id' => 3, 'name' => 'spony']]; $orderProds[10] = [['id' => 2, 'name' => 'hadice']]; napadlo mě že bych si uložil kombinace do pole a pak udělal permutaci, ale nejsem si jisty děkuji za každou snahu :) |
||
Kajman Profil |
#2 · Zasláno: 16. 12. 2020, 23:46:19
A nemáte data v databázi, že by se udělal sql dotaz? Nebo to je jen programátorské cvičení?
|
||
Rada99 Profil * |
#3 · Zasláno: 17. 12. 2020, 11:13:17
Právě to je už vypsané SQL dotaz mi přišel zbytečný... Přes SQL mě vůbec nenapadlo to řešit přijde mi to složité
|
||
Kajman Profil |
Pro dva produkty by to bylo něco takového
SELECT p1.id_produktu, p2.id_produktu, Count(*) radku FROM objednavky_polozky p1 JOIN objednavky_polozky p2 ON p1.id_objednavky = p2.id_objednavky AND p2.id_produktu > p1.id_produktu GROUP BY p1.id_produktu, p2.id_produktu ORDER BY Count(*) DESC Výsledek lze ještě několikrát joinount na číselník produktů pro získání názvu (pro každý alias položek, vlastní alias číselníku). Pro kombinaci tří produktů by se přidal podobně join s aliasem p3. |
||
Rada99 Profil * |
#5 · Zasláno: 17. 12. 2020, 15:46:37
Wow děkuji vyzkouším to... Myslel jsem, přes db by to nešlo
Diky |
||
Časová prodleva: 3 roky
|
0