Autor Zpráva
JaySee
Profil
Ahoj, včera jsem tu řešil s Kajmanem výpis vícejazyčného jídelníčku tak, aby zobrazoval alespoň nějaký překlad, když ten správný neexistuje.

Ještě jsem pak dotaz rozšířil o vazby na celý systém menu a kalendáře. Vše funguje podle představ, ale o co mi jde.
Chci vypsat jídelníček na 7 dní. Pro každý den je v kalendáři přiřazeno menu. Menu má přiřazená jídla. SQL dotaz mi vrátí data v časovém rozmezí (v ukázce není) a ty chci vypsat do sedmi samostatných úseků. Přemýšlám, jestli se to ještě dá udělat na úrovni SQL, nebo to musím rozsekat v PHP podle času.

Zatím mám výpis:
2012-06-15 - polévka s krutóny
2012-06-15 - řízek s bramborem
2012-06-16 - klobáska na pivě
2012-06-16 - brambory na šťouchačku
etc...

Takže chci výpis ve stylu:

Pondělí:
-polévka s krutóny
-řízek s bramborem

Úterý:
-klobáska na pivě
-brambory na šťouchačku

etc...

Na úrovni PHP to napsat umím, ale fakt mě zajímá, kam až můžu s tou databází dojít.
Představuji si něco jako GROUP datum, ale jak to vypsat? Lze ten dotaz potom dostat do multidimenzionálního pole přímo z SQL?

Tady je ten současný SQL dotaz:
$lang = jazyk získaný přes $_GET
$lang_def = defaultní jazyk

SELECT 
       coalesce(pl.nazev, ple.nazev) AS nazev,
       coalesce(pl.popis, ple.popis) AS popis,
       coalesce(l.lang_desc, le.lang_desc) AS langdesc,
         p.cenakc AS kc,
         p.cenaeur AS eur,
         k.datum        
        
                
        FROM kalendar AS k        
                
        LEFT JOIN menu AS m
        ON m.id = k.menu_id        
        
        LEFT JOIN vazby AS v
        ON v.menu_id = m.id
        
        LEFT JOIN pokrm AS p
        ON p.id = v.pokrm_id
        
        LEFT JOIN
               (pokrm_lang AS pl
               JOIN   lang AS l
               ON     pl.id_lang = l.id
               AND l.lang = '$lang')
        ON p.id = pl.id_pokrm
        
        LEFT JOIN
               (pokrm_lang AS ple
               JOIN   lang AS le
               ON     ple.id_lang = le.id
               AND le.lang = '$lang_def') 
        ON p.id = ple.id_pokrm
Jan Tvrdík
Profil
JaySee:
Lze ten dotaz potom dostat do multidimenzionálního pole přímo z SQL?
Obávám se, že to není možné. Výsledek dotazu bude vždy 2d tabulka. V databázi si to můžeš seřadit, ale rozřazení budeš muset udělat na úrovni PHP. Viz také PHP FAQ.
JaySee
Profil
Jan Tvrdík:
Paráda, díky, nenapadlo mě to hledat v PHP FAQ :-) Hledal jsem to v několika MySQL manuálech a návodech.
A když toto nevyšlo, tak je tu alespoň velmi šikovný SELECT.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: