Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

kako citati po dva polja iz baze i ispisati pomocu smarty?

[es] :: PHP :: Smarty template engine :: kako citati po dva polja iz baze i ispisati pomocu smarty?

[ Pregleda: 3248 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

bciric
Bojan Ciric
Pirot

Član broj: 89846
Poruke: 207
79.101.139.*

Sajt: www.cirasoft.co.cc


Profil

icon kako citati po dva polja iz baze i ispisati pomocu smarty?29.03.2009. u 22:05 - pre 182 meseci
kako da prilikom ispisa podataka smartijem uzimam po dve stavke iz baze?

evo primer:
Code:
    $query = mysql_query("SELECT * FROM artikli WHERE (kategorija = '$kat')");
    $nizdet = array();
    while ($item = mysql_fetch_array($query))
    {
        $nizdet[] = $item;
    }
    $smarty->assign('nizdet', $nizdet);    


e kako sad da organizujem section da mogu po dva artikla ispisati?



Code:
      {section name=i loop=$nizdet}
      <tr>
        <td width="6%" align="center"><font size="2">{$nizdet[i].rb}</font></td>
        <td width="39%"><font size="2">{$nizdet[i].naziv}</font></td>
      </tr>
      {/section}


ovo mi daje stavku po stavku

hvala unapred
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-1.sezampro.yu.



+33 Profil

icon Re: kako citati po dva polja iz baze i ispisati pomocu smarty?30.03.2009. u 10:11 - pre 182 meseci
Čekaj, a što ne ideš sa foreach:
Code:

{foreach from=$nizdet item=n}
<tr>
   <td width="6%" align="center"><font size="2">{$n.rb}</font></td>
   <td width="39%"><font size="2">{$n.naziv}</font></td>
</tr>
{/foreach}
 
Odgovor na temu

bciric
Bojan Ciric
Pirot

Član broj: 89846
Poruke: 207
93.86.55.*

Sajt: www.cirasoft.co.cc


Profil

icon Re: kako citati po dva polja iz baze i ispisati pomocu smarty?30.03.2009. u 10:19 - pre 182 meseci
ma ok je i ovo ali daje isti rezultat, a meni treba da mogu dve stavke odjednom da citam iz baze.

Code:

{foreach from=$nizdet item=n}
<tr>
   <td width="6%" align="center"><font size="2">{$n.rb}</font></td>
   <td width="39%"><font size="2">{$n.naziv}</font></td>
</tr>
//<tr>
//   <td width="6%" align="center"><font size="2">sad ovde da bude sledeci rednio broj</font></td>
//   <td width="39%"><font size="2">i naziv sledeceg artuikla</font></td>
//</tr>
{/foreach}


a da se brojac inkrementira za dva.

hocu da ispisem artikle u dve kolone.
 
Odgovor na temu

dakipro
Dalibor Jovic
Web Developer
Bergen, Norway

Član broj: 31848
Poruke: 1792
91.148.77.*

Sajt: norway.dakipro.com


+190 Profil

icon Re: kako citati po dva polja iz baze i ispisati pomocu smarty?30.03.2009. u 10:24 - pre 182 meseci
Iz manuala http://www.smarty.net/manual/en/language.function.foreach.php:
Code:

{* The header block is output every five rows *}
<table>
{foreach from=$items key=myId item=i name=foo}
  {if $smarty.foreach.foo.index % 5 == 0}
     <tr><th>Title</th></tr>
  {/if}
  <tr><td>{$i.label}</td></tr>
{/foreach}
</table>

I sad umesto 5 stavis 2, i umesto <th> stavis </tr><tr> i tako otvoris novi red na svaka dva podatka.
MAda meni cesto sa .index izbaci neku gresku, pa koristim .iteration.
Ili mozes niz da preslozis u dva nivoa, pa onda sa dve petlje (sporije, imas po 2 petlje vise nepotrebne, ali ajd) recimo:

$niz = [red1] => array[2clanaZaOvajRed];
$niz = [red2] => array[2clanaZaOvajRed];
$niz = [red3] => array[2clanaZaOvajRed];


Prvi slucaj malo detaljnije (hint cisto):

Code:

{* The header block is output every five rows *}
<table>
<tr>
{foreach from=$items key=myId item=i name=foo}
  
  <td>{$i.label}</td>
  {if $smarty.foreach.foo.index % 2 == 0}
     </tr><tr>
  {/if}
{/foreach}
</tr>
</table>

 
Odgovor na temu

bciric
Bojan Ciric
Pirot

Član broj: 89846
Poruke: 207
93.86.55.*

Sajt: www.cirasoft.co.cc


Profil

icon Re: kako citati po dva polja iz baze i ispisati pomocu smarty?30.03.2009. u 10:38 - pre 182 meseci
video sa i ja ovaj cod, ali kako da pristupam podacima, ne trebam indekse stampati nego podatke.

Code:

<table>
{foreach from=$items key=myId item=i name=foo}
  {if $smarty.foreach.foo.index % 2 == 0}
     <tr><th>Title</th></tr>
  {/if}
  <tr><td>{$i.label}</td></tr>
{/foreach}
</table>


$i.label je ok, ali kako da pristupim sledecem indeksu?
 
Odgovor na temu

dakipro
Dalibor Jovic
Web Developer
Bergen, Norway

Član broj: 31848
Poruke: 1792
91.148.77.*

Sajt: norway.dakipro.com


+190 Profil

icon Re: kako citati po dva polja iz baze i ispisati pomocu smarty?30.03.2009. u 10:59 - pre 182 meseci
Pa ne kontam sta ce ti sad, kroz petlju pristupas svakom indexu po redu, i samo na svaki drugi index udaris novi TR, kao sto sam ti napisao u drugom primeru.. znaci taj kod bi iscrta
<tr>

foreach(){
<td>clan1</td><td>clan2</td>
// Kako je stigo if brojac do 2, nacrtao bi se novi red
if(brojacJeSvakiDrugi){
</tr><tr>
}
}

</tr>


Ne kontam sad pitanje... pogledaj malo bolje ovaj primer, ili je to resenje, ili ja nisam skontao sta ti treba
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-1.sezampro.yu.



+33 Profil

icon Re: kako citati po dva polja iz baze i ispisati pomocu smarty?30.03.2009. u 11:36 - pre 182 meseci
Ni meni sad nije jasno šta ti sad hoćeš, ako bi se recimo to što tebi treba u čistom PHP-u ispisivalo ovako:
Code:

for ($i = 0; $i < count($nizdet); $i = $i + 2) {
   echo '
   <tr>
      <td width="6%" align="center"><font size="2">' .$nizdet[$i]['rb'] . '</font></td>
      <td width="39%"><font size="2">' .$nizdet[$i]['naziv'] . '</font></td>
   </tr>
   <tr>
      <td width="6%" align="center"><font size="2">' .$nizdet[$i+1]['rb'] . '</font></td>
      <td width="39%"><font size="2">' .$nizdet[$i+1]['naziv'] . '</font></td>
   </tr>
}

Onda je Smarty-jev pandam tome npr. ovo:
Code:

{section name=test loop=$nizdet step=2}
   <tr>
      <td width="6%" align="center"><font size="2">{$nizdet[test].rb}</font></td>
      <td width="39%"><font size="2">{$nizdet[test].naziv}</font></td>
   </tr>
   <tr>
      <td width="6%" align="center"><font size="2">{$nizdet[test.index_next].rb}</font></td>
      <td width="39%"><font size="2">{$nizdet[test.index_next].rb}</font></td>
   </tr>
{/section}

Ili ako ti je lakše samo uokviri onaj PHP kod u Smarty-ju tag-ovima {php} i {/php}. Ali samo pre petlje stavi $nizdet = $this->_tpl_vars['nizdet _items'].
 
Odgovor na temu

bciric
Bojan Ciric
Pirot

Član broj: 89846
Poruke: 207
93.86.55.*

Sajt: www.cirasoft.co.cc


Profil

icon Re: kako citati po dva polja iz baze i ispisati pomocu smarty?30.03.2009. u 15:17 - pre 182 meseci
e bas mi to treba. hvala najlepse


pozdrav
 
Odgovor na temu

VladaSu

Član broj: 31634
Poruke: 1099
77.46.176.*



+218 Profil

icon Re: kako citati po dva polja iz baze i ispisati pomocu smarty?27.04.2009. u 21:11 - pre 181 meseci
Malo sam zakasnio ali problem ti je mysql_fetch_array naredba...
Trenutno ti radi ovako:
array mysql_fetch_array ( resource $result [, int $result_type= MYSQL_BOTH ] )

A promeni po zelji drugi parametar....

"By using MYSQL_BOTH (default), you'll get an array with both associative and number indices. Using MYSQL_ASSOC, you only get associative indices (as mysql_fetch_assoc() works), using MYSQL_NUM, you only get number indices (as mysql_fetch_row() works). "
[Ovu poruku je menjao VladaSu dana 14.06.2003. u 11:22 GMT+1]
 
Odgovor na temu

[es] :: PHP :: Smarty template engine :: kako citati po dva polja iz baze i ispisati pomocu smarty?

[ Pregleda: 3248 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.