Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][SMARTY]
Forum PHP.pl > Forum > Przedszkole
robos85
Otóż mam problem:
z bazy pobieram dane takimi zapytaniami:
  1. <?php
  2. $sql_r=$db->query("SELECT DISTINCT `rok` FROM `info_p` ORDER BY `rok` DESC") or die($db->error);
  3.    while($arr_r=$sql_r->fetch_assoc()){
  4.        $sql_m=$db->query("SELECT DISTINCT `mies` FROM `info_p` WHERE `rok`='".$arr_r['rok']."' ORDER BY `mies` DESC") or die($db->error);
  5.        while($arr_m=$sql_m->fetch_assoc()){
  6.            $tab_m[$arr_r['rok']][]=$arr_m;
  7.        }
  8.        $tab_r[]=$arr_r;
  9.    }
  10.    
  11.    $smarty->assign('arr_r',$tab_r); // rok
  12.    $smarty->assign('arr_m',$tab_m); // miesiąc
  13. ?>

i tworzę sobie tablicę rok-miesiąc.
W smarty wyświetlam to tak:
  1. {foreach from=$arr_r key=k item=i}
  2. <br /><br />{$i.rok}
  3. {foreach from=$arr_m[$i.rok] key=k2 item=i2}
  4. <br />{$i2.mies}
  5. {/foreach}
  6. {/foreach}


Lecz mam też zrobioną tablicę miesiące zamieniająca nr miesiąca na nazwę polska:
  1. <?php
  2. $miesiac = array(
  3. '01'=>'Styczeń',
  4. '02'=>'Luty',
  5. '03'=>'Marzec',
  6. '04'=>'Kwiecień',
  7. '05'=>'Maj',
  8. '06'=>'Czerwiec',
  9. '07'=>'Lipiec',
  10. '08'=>'Sierpień',
  11. '09'=>'Wrzesień',
  12. '10'=>'Październik',
  13. '11'=>'Listopad',
  14. '12'=>'Grudzień'
  15. );
  16. foreach($miesiac as $key => $v) {
  17. $miesiac[$key] = $v;
  18. }
  19. ?>


Jak to teraz zrobić w tej tablicy którą robię w php i dobrze wyświetlić to na stornie żeby zamiast np. 04 był kwiecień - ale można vyło się odnieść do numeru miesiąca - ponieważ będą to linki
nospor
  1. <?php
  2. foreach($miesiac as $key => $v) {
  3. $miesiac[$key] = $v;
  4. }
  5. ?>

A ten foreach to niby czemu ma sluzyc? Zastanow sie chwile zanim odpowiesz winksmiley.jpg



  1. <?php
  2. $miesiac = array(
  3. '01'=>'Styczeń',
  4. '02'=>'Luty',
  5. '03'=>'Marzec',
  6. '04'=>'Kwiecień',
  7. '05'=>'Maj',
  8. '06'=>'Czerwiec',
  9. '07'=>'Lipiec',
  10. '08'=>'Sierpień',
  11. '09'=>'Wrzesień',
  12. '10'=>'Październik',
  13. '11'=>'Listopad',
  14. '12'=>'Grudzień'
  15. );
  16. $sql_r=$db->query("SELECT DISTINCT `rok` FROM `info_p` ORDER BY `rok` DESC") or die($db->error);
  17.   while($arr_r=$sql_r->fetch_assoc()){
  18.       $sql_m=$db->query("SELECT DISTINCT `mies` FROM `info_p` WHERE `rok`='".$arr_r['rok']."' ORDER BY `mies` DESC") or die($db->error);
  19.       while($arr_m=$sql_m->fetch_assoc()){
  20.           $tab_m[$arr_r['rok']][$arr_m['mies']]=$miesiac[$arr_m['mies']];
  21.       }
  22.       $tab_r[]=$arr_r;
  23.   }
  24.  
  25.   $smarty->assign('arr_r',$tab_r); // rok
  26.   $smarty->assign('arr_m',$tab_m); // miesiąc
  27. ?>


Kod
{foreach from=$arr_r key=k item=i}
<br /><br />{$i.rok}
{foreach from=$arr_m[$i.rok] key=k2 item=i2}
<br />{$k2} - {$i2}
{/foreach}
{/foreach}
robos85
już sobie odpowiedziałem - dzięki:)
źle myślałem o key i item już w smarty:)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.