Duvida <br/> em While - PHP

nopaysoft

Power Member
Boas,

Desta feita necessito de ajuda.

O código que vou usar aqui é meramente um exemplo daquele que na realidade uso e que se traduz apenas por ser mais fácil.

Tenho isto:
PHP:
 while ($i < 6) {
     echo "ola";
$i++;
 }
E queria definir um limite por exemplo 2 antes de adicionar uma <br/>

Basicamente:
PHP:
 while ($i < 6) {
     echo "ola";
quando o $i for 2, 4  ou 6 
echo "<br/>";
$i++;
 }
O meu problema é em traduzir o:
quando o $i for 2, 4 ou 6
para código porque o intervalo pode ser variavel. Alguem pode definir de 2 em 2 como pode definir de 3 em 3!
Seria basicamente um loop dentro deste loop que dissesse que sempre que fazia echo X vezes ele adicionava o "<br/>"

Qualquer coisa como esta, que não funciona :lol:

PHP:
 while ($i < 6) {
     echo "ola";
if (($i == 2)||($i == 4)||($ == 6)) {
echo "<br/>";
}
$i++;
 }
Penso que não funciona por vários motivos entre eles o facto de eu usar uma loop dentro de outra.
mas basicamente eu a ler este codigo seria.
Enquanto o $i for menor que 6 fazer echo de "ola".
Se o $i for igual a 2 ou 4 ou 6 fazer echo de "<br/>"

Surgem então os problemas:
1 - Não posso usar isto porque não funciona
2 - Não posso usar porque o 2 / 4 /6 pode ser 3 / 3 ou outro valor qualquer pelo que precisa de ser definido por uma variavel.

Espero ter explicado bem o que quero:
Quero que a cada X echos de "ola" ele echo "<br/>"

Thanks.
 
Boas, podes utilizar o operador de resto da divisão inteira (%). Por exemplo, se X = 20, e supondo que o teu ciclo vai de 0 a 100, terias que ter a condição (i % 20 == 0), sendo que neste caso, só iria fazer echo do <br /> quando i fosse igual a 0, 20, 40, 60, 80 ou 100.

Espero que ajude.
 
Boas, podes utilizar o operador de resto da divisão inteira (%). Por exemplo, se X = 20, e supondo que o teu ciclo vai de 0 a 100, terias que ter a condição (i % 20 == 0), sendo que neste caso, só iria fazer echo do <br /> quando i fosse igual a 0, 20, 40, 60, 80 ou 100.

Espero que ajude.

PHP:
while ($i < 100) {
   echo "ola";        
$i++;  
if ($i % 20 == 0) {
    echo "<br/>";
}

}

MUitiiisssiiimo Obrigado ! ;)
 
Última edição:
Hmm, não é bem isso. Ao invés do while que colocaste e que testa a condição que coloquei acima, precisas de um if. Nesse caso, só vai executar quando tu queres.

Código:
[COLOR=#000000][COLOR=#0000bb][/COLOR][FONT=Courier New][COLOR=#007700]while ([/COLOR][COLOR=#0000bb]$i [/COLOR][COLOR=#007700]< [/COLOR][COLOR=#0000bb]100[/COLOR][/FONT][FONT=Courier New][COLOR=#007700]) {
     echo [/COLOR][COLOR=#dd0000]"ola"[/COLOR][/FONT][FONT=Courier New][COLOR=#007700];
     if ([/COLOR][COLOR=#0000bb]$i [/COLOR][COLOR=#007700]% [/COLOR][COLOR=#0000bb]20 [/COLOR][COLOR=#007700]== [/COLOR][COLOR=#0000bb]0[/COLOR][/FONT][FONT=Courier New][COLOR=#007700]) {
          echo [/COLOR][COLOR=#dd0000]"<br/>"[/COLOR][/FONT][FONT=Courier New][COLOR=#007700];
     }
[/COLOR][COLOR=#0000bb]     $i[/COLOR][/FONT][COLOR=#007700][FONT=Courier New]++;
}  [/FONT][/COLOR][/COLOR]
 
Back
Topo