Totalmente sem logica aushaushauhs
Vamos lá....
Isso não é duvida de cakephp, mas vou tentar te responder por aqui...
Seu while esta contando de 1 até 10
Seu IF vê se é par (não sei porque, já que vc quer quebrar em 3 itens)
Se for par, ele repete 2 vezes (FOR < 2) a abertura de linha da tabela... O que jah eh errado, como abre duas vezes, sem ter fechado?
Se for impar, vc fecha a linha da tabela... tbm tah errado, ele teria que ser multiplo de 3 pra fechar... anyway...
Depois vc incrementa o contador (++), que a proposito esta no lugar errado, vc jah escreveu ele umas 3 vezes xD
Vou te mostrar um caminho, que não é o melhor, mas é o primeiro a se pensar...
Digamos que vc vai escrever de 1 até 12 em uma tabela, no maximo 3 colunas, e repetindo cada linha 3 vezes....
O resultado tem q ser assim:
10 11 12
10 11 12
10 11 12
Certo?
Passo 1:
Então vamos fazer um FOR de 1 até 12 ($x = 1, $x<=12,$X++)...
Deve ser MENOR ou IGUAL pq vc precisa ir ATÉ o 12, ou seja, tem q ser igual a 12...
Passo 2:
Inicie uma variável fora do while, com: "<table><tr>".
Cada vez que o while executar, vc CONCATENA "<td>$x</td>" na variável anterior...
Passo 3:
Dentro do while, tambem, coloque um contador para saber quando chegar ao "3", fechar a linha da tabela e abrir uma nova...
Passo 4:
Depois de todo o while, basta imprimir a variavel que esta guardando tudo... :D