[PHP & Smarty] Na 3 foto's een <br>

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Dennahz
  • Registratie: November 2001
  • Laatst online: 17-09 21:50

Dennahz

Life feels like hell should.

Topicstarter
Hoi,

Ik ben samen met een maat van me bezig met een site en het lukt me op 1 of andere manier niet om dit voor elkaar te krijgen.

Ik heb de volgende code :

PHP:
1
2
3
4
5
6
7
8
9
10
11
    $i = 0;

while($getfotos[1] = mysql_fetch_object($getfotos[0])) {    
    
    $i++;

    if($i == 3) {
        $tpl->assign('i', 3);
    }else{
        $tpl->assign('i', 'i')
    }


En in de template:

PHP:
1
2
3
4
5
6
7
{section name="foto" loop="$fotoid"}

{if $i == 3}
<tr>
<td></td>
</tr>
{/if}


HIj assigned wel netjes die 3, maar in de templates loopt hij dat 4 keer (zitten 4 foto's in de db).

Ben er al een dag mee bezig maar het lukt me nogsteeds niet ?

Zal wel weer iets heel simpels zijn maar ik zou het op't moment echt niet meer weten.

Iemand een oplossing?

Tnx alvast :)

[ Voor 9% gewijzigd door Dennahz op 09-07-2004 20:48 ]

Twitter


Acties:
  • 0 Henk 'm!

  • Eskimootje
  • Registratie: Maart 2002
  • Laatst online: 20:37
Waarom los je het niet op met: {cycle values=" , , <br>"}

Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 22:43
Bedenk eens goed wat je nu precies doet. Wat denk je dat deze code voor effect heeft:
PHP:
1
2
if($i == 3) 
    $tpl->assign('i', 3);


En, zelfde vraag, voor deze code:
PHP:
1
$tpl->assign('i', 'i');


Als je daar om te beginnen antwoord op kan geven, dan zie je misschien ook wel in dat je code kant nog wal raakt (en dan wil ik je wel uitleggen waarom 'ie geen 3, maar 4 keer de lus uitvoert).

Acties:
  • 0 Henk 'm!

  • Kettrick
  • Registratie: Augustus 2000
  • Laatst online: 04:24

Kettrick

Rantmeister!

Je moet alle foto's in een array assignen, vervolgens doe je een

code:
1
{foreach name=naampje item=item from=$fotoarray}


en dan de truck :)

code:
1
2
3
{if $smarty.foreach.naampje.iteration is div by 3}
    <br />
{/if}


lIn totaal krijg je dan :
code:
1
2
3
4
5
6
{foreach name=naampje item=item from=$fotoarray}
  [img]{$item.url_ofzo}"[/img]
         {if $smarty.foreach.naampje.iteration is div by 3}
              <br />
         {/if}
{/foreach}


Hoop dat je hier iets aan hebt.

[ Voor 32% gewijzigd door Kettrick op 09-07-2004 21:02 ]


Acties:
  • 0 Henk 'm!

  • Dennahz
  • Registratie: November 2001
  • Laatst online: 17-09 21:50

Dennahz

Life feels like hell should.

Topicstarter
Bedankt allemaal voor de antwoorden :)

Zal de bovenstaande code even proberen..

Waarom ik if($i == 3) { enz deed :? Is toch logisch dat als $i 3 is hij dan de i moet assignen ? En in de templates gewoon checken of i 3 is.. lijkt mij logisch maar ik zal te simpel denken :).

Tnx iig, en jullie horen het nog :)

Twitter


Acties:
  • 0 Henk 'm!

  • Kettrick
  • Registratie: Augustus 2000
  • Laatst online: 04:24

Kettrick

Rantmeister!

Dennahz schreef op 09 juli 2004 @ 21:09:
Waarom ik if($i == 3) { enz deed :? Is toch logisch dat als $i 3 is hij dan de i moet assignen ? En in de templates gewoon checken of i 3 is.. lijkt mij logisch maar ik zal te simpel denken :).
De lol van templates ( en dus smarty) is dat het qua code niet uit maakt of je 3 of 30 naast elkaar wilt hebben.

Je moet dus in je code nooit dingen gaan vastzetten qua aantal.
Pagina: 1