Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [smarty] Wyświetlanie tablicy wielowymiarowej
Forum PHP.pl > Forum > Gotowe rozwiązania > Systemy szablonów
Lee
Mam pytanie, jak w smarty wyświetlić tablicę wielowymiarową np tab[int][string]
Sabistik
foreach ?
Lee
Pętle foreach znam, wiem też jak wyświetlić jednowymiarową tablicę ale dwuwymiarową już nie

Pytam się, bo we wcześniejszym temacie (o sondzie, że nie wyśweitla wszystkiego) wymyśliłem rozwiązanie ale działające na tablicy wielowymiarowej i nie wiem jak się na niej operuje w smarty w pętli foreach
Sabistik
No na brak przykładów to tam nie można narzekać. Lepiej pokaż jak kombinujesz..
Lee
  1. <?php
  2. $db_query = "SELECT * FROM $tbl_poll WHERE ended<>''";
  3. $mysql -> fetch_assoc($db_query);
  4. $smarty -> assign('poll_question', $mysql -> row);
  5. foreach ($mysql -> row as $poll_question) {
  6. $mysql = new MySQL;
  7. $db_query = "SELECT * FROM $tbl_poll_answers WHERE question_id='".$poll_question['id']."'";
  8. $mysql -> fetch_assoc($db_query);
  9. $answers[] = $mysql -> row;
  10. }
  11. $smarty -> assign('answers', $answers);
  12. ?>

a jak to w smarty wywołać (odpowiedzi, nie pytanie) to juz nie wiem, bo zapisują się w tablicy wielowymiarowej
dudus1
Może uda mi się pomóc.

Plik .php:

  1. <?php
  2. $zap = 'SELECT * FROM ludzie';
  3. $wyn_zap = mysql_query($zap);
  4. $ile = mysql_num_rows($wyn_zap);
  5.  
  6. for ( $i=0; $i<$ile; $i++ ) {
  7.  $wiersz = mysql_fetch_array($wynik_zap_rap);
  8.  $lud[$i] = array();
  9.  $lud[$i]['lud_id'] = $wiersz['lud_id'];
  10.  $lud[$i]['lud_imie'] = $wiersz['lud_imie'];
  11.  $lud[$i]['lud_nazwisko'] = $wiersz['lud_nazwisko'];
  12. }
  13.  
  14. $smarty->assign('lud_tab', $lud);
  15. ?>


Plik .tpl

  1. {foreach from=$lud_tab item=to}
  2. <p><a href="pokaz_dame.php?lud_id={$to.lud_id}">Imie: {$to.lud_imie}, nazwisko: {$to.lud_nazwisko}</a></p>
  3. {/foreach}
gandziorz
Witam mam podobny problem więc dołączę się do posta. Spróbowałem skorzystać z tego co kolega wyżej napisał.
  1. <?php
  2. $zap = "SELECT * FROM `preferencje` ORDER BY `id`";
  3. $wyn_zap = mysql_query($zap);
  4. $ile = mysql_num_rows($wyn_zap);
  5. for ( $i=0; $i<$ile; $i++ ) {
  6.  $wiersz = mysql_fetch_array($wyn_zap);
  7.  $preferencje[$i] = array();
  8.  $preferencje[$i]['id'] = $wiersz['id'];
  9.  $preferencje[$i]['nazwa'] = $wiersz['nazwa'];
  10. }
  11. $smarty->assign('preferencje', $preferencje);
  12. ?>

I w *.tpl
  1. <?php
  2. {foreach from=$preferencje_tab item=to}
  3. <input type=checkbox name="{$to.id}" {if $frm.to.id}checked{/if}>{$to.nazwa}<br>
  4. {/foreach}
  5. ?>
AxZx
gandziorz ale balagan robisz!

w php wystarczy ze zrobisz
  1. <?php
  2. for ( $i=0; $i<$ile; $i++ ) {
  3.  $wiersz = mysql_fetch_array($wyn_zap);
  4.  $preferencje[$i] = $wiersz;
  5. }
  6. $smarty->assign('preferencje', $preferencje);
  7. ?>


w smarty zrob to dokladnie
Kod
{foreach from=$preferencje item=to}
<input type=checkbox name="{$to.id}" {if $frm.to.id}checked{/if}>{$to.nazwa}<br>
{/foreach}
gandziorz
Cytat(AxZx @ 6.01.2007, 20:24:57 ) *
gandziorz ale balagan robisz!

w php wystarczy ze zrobisz
  1. <?php
  2. for ( $i=0; $i<$ile; $i++ ) {
  3.  $wiersz = mysql_fetch_array($wyn_zap);
  4.  $preferencje[$i] = $wiersz;
  5. }
  6. $smarty->assign('preferencje', $preferencje);
  7. ?>


w smarty zrob to dokladnie
Kod
{foreach from=$preferencje item=to}
<input type=checkbox name="{$to.id}" {if $frm.to.id}checked{/if}>{$to.nazwa}<br>
{/foreach}

Bo męcze się od 2-3 dni z tym jednym i kurde non stop nie wychodzi.
I dziękuje bardzo bo teraz już chodzi!
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.