Autor | Zpráva | ||
---|---|---|---|
wassermann Profil |
#1 · Zasláno: 27. 6. 2013, 08:43:12
zdravím všechny. prosím o pomoc.
nevím si rady s vyhledáním navazujících čísel na hlavní číslo v db. db: podcislo hlavni cislo 222 222 333 222 444 222 555 333 666 333 777 333 888 888 101 777 chci vyhledat např. všechny čísla co patří pod hlavní číslo 222. výsledek by měl vypadat takto: 333, 444 ted vyhledat čísla co patří pod tyto vyhledané 333(555, 666, 777), 444(nic) a pokračovat ve vyhledávání čísel co zase patří pod tyto dvě (555, 666, 777) a tak do nekonečna. Děkuji za každou radu nebo nasměrování. |
||
Tori Profil |
#2 · Zasláno: 27. 6. 2013, 08:52:19
Pro každou úroveň bude potřeba jeden SQL dotaz a jednotlivé dílčí výsledky spojovat a řadit v PHP. Zvažoval jste uložit to jako strom? (viz seriál http://www.zdrojak.cz/clanky/ukladame-hierarchicka-data-v-databazi-i/ , první díl je to co máte teď, druhý je stromová struktura. Zjednodušuje dohledání všech podřízených položek na jeden dotaz, na druhou stranu se trošku zkomplikují úpravy struktury - při smazání / přidání položky je potřeba přepočítat pořadí všech následujících položek.)
|
||
wassermann Profil |
#3 · Zasláno: 28. 6. 2013, 00:35:36
Tori:
Děkuji za nasměrování. Vyřešeno. |
||
Časová prodleva: 2 měsíce
|
|||
wassermann Profil |
#4 · Zasláno: 30. 8. 2013, 16:50:46
Zdravím. Navazuji ještě na předchozí dotaz.
Mám vypis hierarchie (viz.předchozí dotaz). Každé číslo má svou hodnotu(y) v jiné tabulce. Nemám problém s výpisem hodnot(y) čísla, ale s celkovým sesumováním všech hodnot. Děkuji za každou radu nebo nasměrování. |
||
Kajman Profil |
#5 · Zasláno: 30. 8. 2013, 19:40:25
|
||
Časová prodleva: 3 dny
|
|||
wassermann Profil |
#6 · Zasláno: 2. 9. 2013, 10:08:20
Kajman:
Díky za odpověď. Funkci SUM znám. Problém mám stím, že když mam while ve funkci tak mám výsledek např.: 1200 500 350 900 0 0 0. Toto jsou sesumované hodnoty čísel. Potřeboval bych sesumovat ještě tento sesumovaný výpis. |
||
Kajman Profil |
#7 · Zasláno: 2. 9. 2013, 13:11:07
Můžete si to sčítat v tom while cyklu, nebo použít
group by ... with rollup
|
||
wassermann Profil |
#8 · Zasláno: 3. 9. 2013, 01:08:52
Kajman:
Díky za odpověď. Výsledky 1200 500 350 900 0 0 0 už jsou sesumované ve while. Výsledek 1200 je od číslá 222 a pak se spustí znovu funkce která najde podčísla od 333 a vysledek je 500 atd. Nakonec vyřešeno přes druhou funkci kde to sesumuju. Díky. |
||
Časová prodleva: 11 let
|
0