Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SMARTY] smarty a pętle
Forum PHP.pl > Forum > Gotowe rozwiązania > Systemy szablonów
Balon
W jaki sposob zrobic petle w smarty ?

myslalem o czyms takim
  1. <?php
  2. while($row = mysql_fetch_array($query)){
  3. $smarty->assign('PETLA', $row['dane']);
  4. }
  5. ?>


czy to dobry pomysl ?
sf
moze zly bo to nie dziala? ;-)

  1. <?php
  2. $aData = array();
  3. while($aRow = mysql_fetch_assoc($query)){
  4. $aData[] = $aRow;
  5. }
  6. $oSmarty->assign('data', $aData);
  7. ?>
bigZbig
Przyklad zastosowania petli foreach w smarty znajdziesz w dokumentacji Smarty.
Balon
dopiero dzisiaj beda mi potrzebne petle w smarty no i teraz czytam sobie ta dokumentacje i proboje tak
  1. <table border="0">
  2. {foreach from=$linki item=link}
  3. <tr>
  4. <td>{$link}</td>
  5. </tr>
  6. <tr>
  7. <td>{$opis}</td>
  8. </tr>
  9. {/foreach}

no ale jak ja chce do tej petli wrzucac wiecej niz jedna wartosc ? np link, autor, opis, screen, komenty, itd ?
nospor
robisz tak jak ci napisal sf, czyli masz tablicę, ktorej kazy element to tablica, a potem w smarty:
Kod
<table>
{foreach from=$data item=row}
<tr>
<td>{$row.link}</td>
<td>{$row.opis}</td>
.....
</tr>
{/foreach}
</table>
Balon
napisalem sobie tak
  1. <?php
  2. while( $sql->sql_fetch_row() )
  3. {
  4. $link['title'] = $sql->rows[0];
  5. $link['url'] = $sql->rows[1];
  6. }
  7. $smarty->assign( 'links', $link );
  8. $smarty->display( 'main.tpl' );
  9. ?>


plik tpl
  1. <table border="0">
  2. {foreach from=$links item=link}
  3. <tr>
  4. <td>{$link.title}</td>
  5. </tr>
  6. <tr>
  7. <td>{$link.url}</td>
  8. </tr>
  9. <tr>
  10. <td><hr /></td>
  11. </tr>
  12. {/foreach}


i efekt tego...

http://bzdury.pliki.pl/main.php

w bazie jest tylko jeden rekord i skeszowany wyglada on tak
Kod
a:1:{i:0;a:2:{i:0;s:9:"testowy 1";i:1;s:12:"www.pliki.pl";}}


dlaczego wyswietla to taki dziwny wynik ?
nospor
masz zrobic tablicę, ktorej elementy to tez tablice. ty w tej chwili tego nie robisz...
  1. <?php
  2.  
  3. $i=0;
  4. $link=array();
  5. while( $sql->sql_fetch_row() )
  6. {
  7. $link[$i] = array();
  8. $link[$i]['title'] = $sql->rows[0];
  9. $link[$i]['url'] = $sql->rows[1];
  10. $i++;
  11. }
  12. ?>
Balon
ach no to teraz wszystko jasne ;] dzieki wielkie winksmiley.jpg
Saddam92
no dobrze a jeśli NIE mam tablicy asocjacyjnej.. a chciałbym zrobić cos tabele:
  1. ....
gdzie w miejscu kropek podstawione by były wszystkie wywołania tablicy od 0 do końca..
jak cos takiego zrobić w smarty, (w php mozna to zrobic prosta petla for, a tutaj nie za bardzo) - z ta petla foreach się troche pogubiłem ... czy mógłby ktoś pomóc..?
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.