Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SMARTY] smarty a pętle
Balon
post
Post #1





Grupa: Zarejestrowani
Postów: 422
Pomógł: 0
Dołączył: 14.12.2005
Skąd: Wałbrzych

Ostrzeżenie: (0%)
-----


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 ?
Go to the top of the page
+Quote Post
sf
post
Post #2





Grupa: Zarejestrowani
Postów: 1 597
Pomógł: 30
Dołączył: 19.02.2003
Skąd: Tychy

Ostrzeżenie: (0%)
-----


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. ?>
Go to the top of the page
+Quote Post
bigZbig
post
Post #3





Grupa: Zarejestrowani
Postów: 740
Pomógł: 15
Dołączył: 23.08.2004
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Przyklad zastosowania petli foreach w smarty znajdziesz w dokumentacji Smarty.
Go to the top of the page
+Quote Post
Balon
post
Post #4





Grupa: Zarejestrowani
Postów: 422
Pomógł: 0
Dołączył: 14.12.2005
Skąd: Wałbrzych

Ostrzeżenie: (0%)
-----


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 ?
Go to the top of the page
+Quote Post
nospor
post
Post #5





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




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>
Go to the top of the page
+Quote Post
Balon
post
Post #6





Grupa: Zarejestrowani
Postów: 422
Pomógł: 0
Dołączył: 14.12.2005
Skąd: Wałbrzych

Ostrzeżenie: (0%)
-----


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 ?
Go to the top of the page
+Quote Post
nospor
post
Post #7





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




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. ?>
Go to the top of the page
+Quote Post
Balon
post
Post #8





Grupa: Zarejestrowani
Postów: 422
Pomógł: 0
Dołączył: 14.12.2005
Skąd: Wałbrzych

Ostrzeżenie: (0%)
-----


ach no to teraz wszystko jasne ;] dzieki wielkie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
Saddam92
post
Post #9





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 17.11.2006

Ostrzeżenie: (0%)
-----


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..?

Ten post edytował Saddam92 25.11.2006, 21:53:01
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 25.12.2025 - 11:46