Zadejte hledaný výraz...

Prosím o pomoc s fetchPairs + selectbox

Zdravím,
snažím se naučit Nette a narazil jsem na jeden "problém" s fetchPairs() u Selectboxu, který zkušenější programátor jistě vyřeší levou zadní.
Mějme např. následující kód
public function selectAdresa() {
return self::db()->query('SELECT id_adresa, nazev FROM adresy')->fetchPairs('id_adresa', 'ulice');
}
Tímto kódem naplním selectbox a vše funguje tak jak má. V tabulce 'adresy' mám ale ještě další sloupce (mesto, psc), které bych chtěl, aby se mi v tom select boxu vypisovaly vedle sebe oddělené čárkou, jako např:
Dlouhá 53, Olomouc, 40812
Za boha ale nemůžu přijít na to, jak to tam dostat.
Mohl by mi s tím někdo, prosím pěkně, pomoci? :)
Děkuji
19. 8. 2011 02:45:43
https://webtrh.cz/diskuse/prosim-o-pomoc-s-fetchpairs-selectbox#reply668399
Mgr. Ivo Toman
verified
rating uzivatele
(7 hodnocení)
19. 8. 2011 07:02:39
Pokud chceš tohle udělat s fetchPairs, tak to musíš v mysql to seskupit. Zkus něco takového
19. 8. 2011 07:02:39
https://webtrh.cz/diskuse/prosim-o-pomoc-s-fetchpairs-selectbox#reply668398
Výborně, to je přesně to co jsem myslel, mockrát děkuji :)
Ještě bych měl jeden dotaz - když bych měl ještě sloupec a tam by bylo v INT cislo, je nějakým podobně jednoduchým způsobem možné vypsat např:
Dlouhá 53, Olomouc, 40812, 59 Kč
Jde mi o to přidání za položku . Zkoušel jsem to teď různými kombinacemi do toho CONCAT_WS, ale nedaří se :-/
19. 8. 2011 08:56:20
https://webtrh.cz/diskuse/prosim-o-pomoc-s-fetchpairs-selectbox#reply668397
Mgr. Ivo Toman
verified
rating uzivatele
(7 hodnocení)
19. 8. 2011 09:39:27
Bud můžeš klasicky do toho vložit "Kč" ale pak bude výsledek 59,Kč a nebo by sis musel udělat ještě jeden CONCAT uvnitř, ale myslím, že zbytečně přenášíš logiku do databáze.
Si udělej
A pak máš všechno v poli pěkně připravené na jakýkoliv výpis.
19. 8. 2011 09:39:27
https://webtrh.cz/diskuse/prosim-o-pomoc-s-fetchpairs-selectbox#reply668396
Vladimír Benc
verified
rating uzivatele
(7 hodnocení)
19. 8. 2011 13:07:27
Napsal Budulinek;691364
Jde mi o to přidání za položku . Zkoušel jsem to teď různými kombinacemi do toho CONCAT_WS, ale nedaří se :-/
třeba takovouhle obludnou konstrukcí :)
CONCAT_WS(',' , adresa, mesto, CONCAT_WS(' ',cena,'Kč'))
ale to už je lepší si vrátit jednoduše celé pole a pak si to naformátovat jak je libo.
jak píše Ivorius
19. 8. 2011 13:07:27
https://webtrh.cz/diskuse/prosim-o-pomoc-s-fetchpairs-selectbox#reply668395
Rada se nevztahuje přímo k Nette:
Určitě nic neformátujte přímo v SQL, ale koneckonců ani v PHP. Izolujte to, co se mění.
Jako jednoduchou obranu před touto chybou si představte, že chcete
- přeložit web do angličtiny, tedy použít "CZK" místo "Kč"
- změnit měnu, tedy uvádět ceny v € místo v Kč
- změnit formátování adresy
19. 8. 2011 13:31:01
https://webtrh.cz/diskuse/prosim-o-pomoc-s-fetchpairs-selectbox#reply668394
Pro odpověď se přihlašte.
Přihlásit