Autor | Zpráva | ||
---|---|---|---|
nowis Profil * |
#1 · Zasláno: 7. 12. 2011, 13:48:28
Zdravím. Jsem v PHP a MySQL téměř nováček. Chci si udělat v PHP takovou aplikaci, kde bych si evidoval zakázky. V tuto chvíli to mám v Excelu, kde seřadím zakázky dle klienta a pod každou skupinou se mi napíše mezisoučet. Tzn. např:
Zakázka1 | Telefonica | 10.000 Zakázka3 | Telefonica | 15.000 Zakázka5 | Telefonica | 18.000 Celkem Telefonica 43.000 Zakázka2 | ČEZ | 12.000 Zakázka4 | ČEZ | 18.000 Celkem ČEZ 30.000 Zatím mám vypsaný obsah tabulky pomocí MySQL_Fetch_Array a je to ve formě "každá zakázka je jeden řádek" Poradíte mi prosím, jak bych měl postupovat dále? |
||
Tori Profil |
#2 · Zasláno: 7. 12. 2011, 14:06:14
nowis:
Koukněte na seskupování výsledků (GROUP BY WITH ROLLUP). |
||
nowis Profil * |
#3 · Zasláno: 7. 12. 2011, 14:18:52
No, myslím, že to není ono. Já chtěl, aby se to napsalo přímo pod ty setříděné řádky, tedy tak, jak jsem uvedl v původním příspěvku. Tady to napíše pod sebe jen všechny mezisoučty. Nebo to špatně chápu?
|
||
Kajman_ Profil * |
nowis:
Použijte v seznamů sloupců v group by i zakázku, pak tam budou i netučné řádky. Také záleží na pořadí sloupců, stačí si s tím pohrát. |
||
nowis Profil * |
#5 · Zasláno: 8. 12. 2011, 13:27:06
Kajman:
Cítím se ponížen :-) Díky, takhle jsem si to vybájil ale nepředstavoval jsem si, že to půjde takhle jednoduše. Vymýšlel jsem šílené PHP konstrukce a ani mně nenapadlo, že to půjde jedním dotazem. Opravdu moc děkuji. Bohužel na tuto situaci sedí, že "chytrému napověz, hloupého trkni" a není těžké odvodit kdo je kdo :-) |
||
nowis Profil * |
#6 · Zasláno: 8. 12. 2011, 14:33:19
hmm, tak nevím, jestli jsem se neradoval předčasně. Dotaz mi sice vyjel v dobře, ale když to šoupnu do PHP, tak se mi místo mezisoučtů napíše jen poslední hodnota, tedy z mého prvního případu by to bylo "Celkem Telefonica 18.000 a Celkem ČEZ 18.000" :-(
Mohli byste mně prosím ještě nakopnout? |
||
Kajman_ Profil * |
#7 · Zasláno: 8. 12. 2011, 14:37:51
To je divné, že by se naprosto stejný dotaz choval v php a přímo v sql nástroji jinak. Ukažte dotaz, který jste v php použil. Případně i jeho zpracování, nejste-li si jistý korektností.
|
||
Tori Profil |
#8 · Zasláno: 8. 12. 2011, 14:45:38
nowis:
Neukládáte to do pole, kde klíčem je ID zakázky? V těch mezisoučtech je v některých polích NULL, takže se možná přepisuje hodnota jednoho prvku. |
||
nowis Profil * |
#9 · Zasláno: 8. 12. 2011, 15:18:18
...už vím proč, ale pořád nevím jak z toho ven. Nefunguje to ani jako dotaz (tedy ne jen v PHP)
u každého toho řádku s názvem zakázky jsou totiž další buňky, které ty zakázky blíže specifikují, např, v jaké jsou fázi, kdo na nich spolupracuje... A já ty buňky které chci zobrazovat vrazil do SELECT, což je asi špatně. Asi by bylo lepší vložit sam ten dotaz, který používám: Tento dotaz dělá mezisoučty tak jak má. Ale NEZOBRAZUJE všechny buňky, které tam potřebuji vidět: SELECT `Prodejce` , SUM( `Rozpocet` ) FROM obchodnidenik GROUP BY Prodejce, Zakazka WITH ROLLUP Tento dotaz dělá mezisoučty špatně. Ale ZOBRAZUJE všechny buňky, které tam potřebuji vidět: SELECT `Prodejce` , `Zakaznik` , `Zakazka` , `DatumZadani` , `Rozpocet` , `Faze`, `Spoluprace`, SUM( `Rozpocet` ) FROM obchodnidenik GROUP BY Prodejce, Zakazka WITH ROLLUP |
||
Kajman_ Profil * |
#10 · Zasláno: 8. 12. 2011, 16:02:32
Zkuste třeba min(`Zakaznik`) atp., s tím, že u součtů za prodejce tyhle sloupce nevypisujte.
|
||
nowis Profil * |
#11 · Zasláno: 8. 12. 2011, 16:06:00
tak už jsem to našel. Správně je ten druhý dotaz, akorát tam mám navíc pole 'Rozpocet' a pak na konci, SUM('Rozpocet')
Díky za váš čas |
||
Časová prodleva: 12 let
|
0